【发布时间】:2015-12-01 16:05:47
【问题描述】:
当我尝试通过 Squirrel 对 DB2 数据库运行存储过程时,我遇到了一个棘手的问题。 在存储过程中有部分组合了这样的 sql 语句:
SET V_SQL = 'SELECT DISTINCT ' || PARAM_COLUMNNAME || ' FROM '||PARAM_TABLENAME||' WHERE '||PARAM_COLUMNNAME||'<'||PARAM_NUMBER||';';
我更改了会话语句参数; --> @ 正确运行过程调用,但我收到错误消息:
在“”之后发现了一个意外的标记“”。预期的代币可能 包括:“WHERE REP_ID
我猜是因为分隔符';'内部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 SQL 客户端快照 20150623_2101 DB2:9.5
感谢和干杯。
【问题讨论】:
-
动态 SQL 中不需要终止符,因为一次只能运行一条语句:
'<'||PARAM_NUMBER;
标签: stored-procedures db2 squirrel-sql