CREATE TRIGGER DB2INST1.CHOICEAREA AFTER INSERT ON DB2INST1.TBL_SMR FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
declare @m char(20);
select @m=role from tbl_sendrole where Mobile_Num in (select DestAddr from inserted);
insert into tbl_smr1(OrgAddr,DestAddr) select OrgAddr,DestAddr from inserted;
update tbl_smr1 set OrgAddr=@m where DestAddr in (select DestAddr from inserted);
END
在DB2命令下有很多问题,请教大虾帮忙看一下!
DECLARE @m char(20)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "C DECLARE @m char(20" 后面找到异常标记
")"。预期标记可能包括:"END-OF-STATEMENT"。 LINE NUMBER=3. SQLSTATE=42601
select @m=role from tbl_sendrole where Mobile_Num in (select DestAddr from inserted)
SQL0104N 在 "select @m" 后面找到异常标记 "="。预期标记可能包括:""。
SQLSTATE=42601
insert into tbl_smreceived1(OrgAddr,DestAddr,SM_Content,RecvTime,Reserve1,Reserve2,SMType,MessageID,OrgAddrType,ActionID,ActionReasonID,ServiceID,ProtocolType,Readed,Droped) select OrgAddr,DestAddr,SM_Content,RecvTime,Reserve1,Reserve2,SMType,MessageID,OrgAddrType,ActionID,ActionReasonID,ServiceID,ProtocolType,Readed,Droped from inserted
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0204N "DB2INST1.INSERTED" 是一个未定义的名称。 SQLSTATE=42704
update tbl_smreceived1 set MessageID=@m where DestAddr in (select DestAddr from inserted)
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0206N "@M" 在使用它的上下文中无效。 SQLSTATE=42703
END@
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "END@" 后面找到异常标记
"END-OF-STATEMENT"。预期标记可能包括:"JOIN "。 SQLSTATE=42601
SQL0104N 在 "END@" 后面找到异常标记 "END-OF-STATEMENT"。预期标记可能包括:"JOIN "。
说明:
在文本 "" 后面的指定标记处检测到 SQL 语句中或 SYSPROC.ADMIN_CMD
过程的输入命令字符串中的语法错误。"" 字段指示无效标记前面的 SQL
语句中或 SYSPROC.ADMIN_CMD 过程的输入命令字符串的 20 个字符。
作为帮助,在 SQLCA 的 SQLERRM 字段中,提供了有效标记的部分列表作为 "
记列表>"。此列表假设语句到该位置为止是正确的。
不能处理该语句。
用户响应:
在指定的标记区域内检查并更正语句。
sqlcode: -104
sqlstate: 42601
[本帖最后由 springwhite 于 2008-8-3 09:13 编辑]