当我尝试通过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
谢谢,干杯。
答案 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;; -
解释我不知道为什么以这种方式通过数据库引擎,但工作。 谢谢!