AFTER INSERT ON
DB2INST1.sms_send
REFERENCING NEW AS nrow
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
declare cont varchar(3000);
if nrow.status=1
then
set cont=(select smscontent from DB2INST1.t_smscontent as s where s.smscontent_id=nrow.smscontent_id);
insert into DB2INST1.TBL_SMsendtask(CREATORID, SMSENDEDNUM,OPERATIONTYPE,SUBOPERATIONTYPE,SENDTYPE,ORGADDR,DESTADDR,SM_CONTENT,
SENDTIME,NEEDSTATEREPORT,SERVICEID,FEETYPE,FEECODE,SMTYPE,MESSAGEID,DESTADDRTYPE,SUBTIME,TASKSTATUS,SENDLEVEL,SENDSTATE,
TRYTIMES,COUNT,SUCCESSID,RESERVE1,RESERVE2) VALUES('0000',0,'WAS','66',1,'106573060067'+nrow.orgnum,nrow.receivetell,cont,nrow.sendtime,0,'MSD2210201','01','0',0,'0',0,CURRENT TIMESTAMP,0,2,0,3,33,0,'0','0');
END IF;
end
报错信息如下:
CREATE TRIGGER DB2INST1.insertstatus
AFTER INSERT ON
DB2INST1.sms_send
REFERENCING NEW AS nrow
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
declare cont varchar(3000)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "re cont varchar(3000" 后面找到异常标记
")"。预期标记可能包括:"END-OF-STATEMENT"。 LINE NUMBER=7. SQLSTATE=42601
if(nrow.status=1) then set cont=(select smscontent from DB2INST1.t_smscontent as s where s.smscontent_id=nrow.smscontent_id)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "BEGIN-OF-STATEMENT" 后面找到异常标记 "if(nrow.status=1)
then"。预期标记可能包括:"<create_proc>"。 SQLSTATE=42601
insert into DB2INST1.TBL_SMsendtask(CREATORID, SMSENDEDNUM,OPERATIONTYPE,SUBOPERATIONTYPE,SENDTYPE,ORGADDR,DESTADDR,SM_CONTENT, SENDTIME,NEEDSTATEREPORT,SERVICEID,FEETYPE,FEECODE,SMTYPE,MESSAGEID,DESTADDRTYPE,SUBTIME,TASKSTATUS,SENDLEVEL,SENDSTATE, TRYTIMES,COUNT,SUCCESSID,RESERVE1,RESERVE2) VALUES('0000',0,'WAS','66',1,'106573060067'+nrow.orgnum,nrow.receivetell,cont,nrow.sendtime,0,'MSD2210201','01','0',0,'0',0,CURRENT TIMESTAMP,0,2,0,3,33,0,'0','0')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0206N "NROW.ORGNUM" 在使用它的上下文中无效。 SQLSTATE=42703
END IF end
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "END " 后面找到异常标记 "IF"。预期标记可能包括:"JOIN
<joined_table>"。 SQLSTATE=42601
SQL0104N 在 "END " 后面找到异常标记 "IF"。预期标记可能包括:"JOIN <joined_table> "。
说明:
在文本 "<文本>" 后面的指定标记处检测到 SQL 语句中或 SYSPROC.ADMIN_CMD
过程的输入命令字符串中的语法错误。"<文本>" 字段指示无效标记前面的 SQL
语句中或 SYSPROC.ADMIN_CMD 过程的输入命令字符串的 20 个字符。
作为帮助,在 SQLCA 的 SQLERRM 字段中,提供了有效标记的部分列表作为 "<标
记列表>"。此列表假设语句到该位置为止是正确的。
不能处理该语句。
用户响应:
在指定的标记区域内检查并更正语句。
sqlcode: -104
sqlstate: 42601
现在把所有的逻辑都去掉,光写句声明也不行!
CREATE TRIGGER DB2INST1.insertstatus
AFTER INSERT ON
DB2INST1.sms_send
REFERENCING NEW AS nrow
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
declare cont varchar(30);
END
CREATE TRIGGER DB2INST1.insertstatus
AFTER INSERT ON
DB2INST1.sms_send
REFERENCING NEW AS nrow
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
declare cont varchar(30)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "lare cont varchar(30" 后面找到异常标记
")"。预期标记可能包括:"END-OF-STATEMENT"。 LINE NUMBER=7. SQLSTATE=42601
END
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "END" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN
<joined_table>"。 SQLSTATE=42601
SQL0104N 在 "END" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN <joined_table>
5 个解决方案
#1
现在基本没错了 就一个点过不去了 就是插入语句那里那个‘10657……’+orgnum这里 总提示+号有问题!!
#2
我解决了 呵呵 大家有类似情况出现 就发帖吧 呵呵
#3
把错误原因直接分享一下吧
#4
#1
现在基本没错了 就一个点过不去了 就是插入语句那里那个‘10657……’+orgnum这里 总提示+号有问题!!
#2
我解决了 呵呵 大家有类似情况出现 就发帖吧 呵呵
#3
把错误原因直接分享一下吧