- 論壇徽章:
- 0
|
DB2的觸發(fā)器中能否調(diào)用存儲過程?
我的觸發(fā)器本來是:
DECLARE @ITEMID VARCHAR(50);
DECLARE @TABLENAME1 VARCHAR(20);
DECLARE @TABLENAME2 VARCHAR(20);
FOR cur1 AS
SELECT A.ID,A.REALTABLE_NAME,RTRIM('I2E_'||(CAST(B.YEAR AS CHAR(4)))||(CAST(A.MONTH AS CHAR(2)))) REALTABLE_NAME2
FROM SYS_FINACIRCLEITEM A,SYS_FINACIRCLE B
WHERE A.FINACIRCLE_ID=B.ID AND START_DATE<=DATE(NEWROW.TAGTIMESTAMP) AND END_DATE>=DATE(NEWROW.TAGTIMESTAMP) DO
SET @ITEMID=cur1.ID;
SET @TABLENAME1=cur1.REALTABLE_NAME;
SET @TABLENAME2=cur1.REALTABLE_NAME2;
END FOR;
IF ((@ITEMID<>'') AND (@ITEMID IS NOT NULL)) THEN
IF ((@TABLENAME1='') OR (@TABLENAME1 IS NULL)) THEN
CREATE TABLE @TABLENAME2 (
TAGID INTEGER DEFAULT 0,
TAGTIMESTAMP TIMESTAMP,
TAGVALUE DOUBLE DEFAULT 0.0
);
UPDATE SYS_FINACIRCLEITEM SET REALTABLE_NAME=@TABLENAME2 WHERE ID=@ITEMID;
END IF;
INSERT INTO @TABLENAME2(TAGID,TAGTIMESTAMP,TAGVALUE) VALUES(NEWROW.TAGID,NEWROW.TAGTIMESTAMP,NEWROW.FLOATFIELD);
END IF;
發(fā)現(xiàn)
CREATE TABLE @TABLENAME2 (
TAGID INTEGER DEFAULT 0,
TAGTIMESTAMP TIMESTAMP,
TAGVALUE DOUBLE DEFAULT 0.0
);
不能通過
并且
INSERT INTO @TABLENAME2(TAGID,TAGTIMESTAMP,TAGVALUE) VALUES(NEWROW.TAGID,NEWROW.TAGTIMESTAMP,NEWROW.FLOATFIELD);
也不能通過,原因是用來變量當(dāng)表明,只能用存儲過程
了,但是不知道觸發(fā)器中任何調(diào)用存儲過程
如果上面觸發(fā)器能有好的修改辦法,那是最好了!
高手們幫忙,急。。。。。! |
|