Squirrel Client DB2存储过程会话分隔符

时间:2015-12-01 16:05:48

标签: stored-procedures db2 squirrel-sql

当我尝试通过Squirrel针对DB2数据库运行存储过程时,我遇到了一个棘手的问题。 在存储过程中有一部分组合了一个像这样的SQL语句:

SET V_SQL = 'SELECT DISTINCT ' || PARAM_COLUMNNAME || ' FROM '||PARAM_TABLENAME||' WHERE '||PARAM_COLUMNNAME||'<'||PARAM_NUMBER||';';

我更改了会话声明参数; - &GT; @正确运行过程调用,但我收到错误消息:

  

在“”之后发现意外的标记“”。预计的代币可能会   包括:“WHERE REP_ID&lt; 201506”.. SQLCODE = -104,SQLSTATE = 42601,   DRIVER = 3.59.81 SQL代码:-104,SQL状态:42601

我猜这是因为天文台';'内部sql脚本,所以我改变了这样的代码:

SET V_SQL = 'SELECT DISTINCT ' || PARAM_COLUMNNAME || ' FROM '||PARAM_TABLENAME||' WHERE '||PARAM_COLUMNNAME||'<'||PARAM_NUMBER||'@';

然后我收到这条消息:

  

数字文字“201506 @”无效.. SQLCODE = -103,   SQLSTATE = 42604,DRIVER = 3.59.81 SQL代码:-103,SQL状态:42604

你有什么想法吗?

  

Squirrel:SQuirreL SQL Client snapshot-20150623_2101 DB2:9.5

谢谢,干杯。

1 个答案:

答案 0 :(得分:0)

所以最后我的工作是评论标志: SET V_SQL =&#39; SELECT DISTINCT&#39; || PARAM_COLUMNNAME || &#39; FROM&#39; || PARAM_TABLENAME ||&#39;在哪里&#39; || PARAM_COLUMNNAME ||&#39;&lt;&#39; || PARAM_NUMBER ||&#39 ;;&#39;; -

解释我不知道为什么以这种方式通过数据库引擎,但工作。 谢谢!