无法在读取数据库操作符中使用宏

christos_karraschristos_karras 成员职位:50大师
2020年2月编辑 帮助
我试图在读取数据库操作符中使用宏,但它们不被解释,这会导致错误。我尝试了两个不同的案例:
1.动态SQL,直接在SQL查询中使用宏
2.预处理语句,在参数中使用宏

我需要两个选项的工作不同的查询,但他们都没有工作。

我发现了一些旧的讨论,似乎在说我想做的事情应该有效,但我没能让它起作用:
https://community.www.turtlecreekpls.com/discussion/19000/query-inputs-using-set-macros
https://community.www.turtlecreekpls.com/discussion/6901/rm5-use-macros-in-sql-statements-iterate-over-tables
https://community.www.turtlecreekpls.com/discussion/17994/ms-sql-and-query-input

我测试了RapidMiner 9.5.001和9.6测试版

示例错误日志,其中我们看到它试图执行查询而不替换宏的值:
<?xml version="1.0" encoding="UTF-8"?><进程版本="9.5.001">      <参数key="logverbosity" value="init"/> <参数key="random_seed" value="2001"/> <参数key="send_mail" value="never"/> <参数key="notification_email" value="30"/> <参数key="encoding" value="SYSTEM"/> <进程expanded="true">          @StartDatedatetime # 10;申报的东西@EndDatedatetime # 10;集@StartDate= & # 10;集@EndDate= & # 10;选择@StartDateStartDate可以,@EndDateEndDate& # 10;    <参数key="参数" value="VARCHAR. time "。20200205 23:59:59 \。000"/>  <参数key=" datammanagement " value="double_array"/> <参数key="data_management" value="auto"/>   <参数key="define_connection" value="repository"/> <参数key="connection_entry" value="/Connections/TestConnection"/> <参数key="database_system" value="MySQL"/> <参数key="database_system" value="MySQL"/> <参数key="database_system" value="MySQL"/key="define_query" value="query"/> @StartDatedatetime # 10;申报的东西@EndDatedatetime # 10;集@StartDate= ' $ {query_start_date_time} ' & # 10;集@EndDate= '20200205 00:00:00.000'
@StartDateStartDate可以,@EndDateEndDate& # 10;"/>                  2020年2月6日1:10:52 PM INFO:正在执行查询:'SET NOCOUNT ON DECLARE @StartDate DateTime DECLARE @EndDate DateTime SET @StartDate = '${query_start_date_time}' SET @EndDate = '20200205 00:00:00.000' SELECT @StartDate AS StartDate, @EndDate AS EndDate' 2020年2月6日1:10:52 PM严重:进程失败:数据库错误发生:转换日期和/或时间时转换失败从字符串。2020年2月6日1:10:52 PM SEVERE: Here: 2020年2月6日1:10:52 PM SEVERE: Process[1] (Process) 2020年2月6日1:10:52 PM SEVERE: +- Set Macro[1] (Set Macro) 2020年2月6日1:10:52 PM SEVERE: ==> +- Read Database - Dynamic SQL[1] (Read Database) 2020年2月6日1:10:52 PM SEVERE:+- Read Database - Prepared Statement[0] (Read Database) 
我已经确认Set Macro在查询之前执行:



Set Macro operator:


Case 1示例查询(动态SQL):


Case 2示例(预处理语句)




处理XML:

另注:
-如果我用硬编码的值替换对宏的引用,查询工作正常
-我确认宏是通过查看上下文选项卡并在读取数据库操作符之前设置断点来设置的
-我使用的查询可能看起来奇怪和不必要的,但这些只是简化的查询,以获得最简单的例子再现问题,同时给出一些关于实际查询的一般想法。

宏应该为这个操作符工作吗?


Jasmine_