各位:

正如标题所说:

以下是本人写的代码:但有错

CREATE OR REPLACE TRIGGER T_GetOutLetVarierry

BEFORE UPDATE ON ALL_TBSJ

FOR EACH ROW

DECLARE

OLD_Value VARCHAR2(500);

Total_ROWS INT;

V_SQL_OldVavlus VARCHAR2(100);

V_SQL VARCHAR2(100);

CURSOR Select_Column IS

SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'ALL_TBSJ';

CURSOR_COLUMNS  USER_TAB_COLUMNS.COLUMN_NAME%TYPE;

OPEN Select_Column;

FETCH Select_Column INTO CURSOR_COLUMNS;

WHILE Select_Column %FOUND LOOP

--   V_SQL_OldVavlus := 'SELECT :OLD.'||CURSOR_COLUMNS||' INTO OLD_Value FROM DUAL'; --fetch the old data for change column

DBMS_OUTPUT.PUT_LINE(':OLD.'||CURSOR_COLUMNS)

EXECUTE IMMEDIATE V_SQL_OldVavlus;

SELECT COUNT(*) INTO Total_ROWS FROM ALL_TBSJ WHERE COLUMN_NAME = OLD_Value;---judgment the old_Value in which Column

IF Total_ROWS >= 1 THEN

V_SQL :=  'INSERT INTO CC (COLUMN_S,OLDDATA,NEWDATA) VALUES (';

V_SQL := V_SQL ||CURSOR_COLUMNS||',:OLD.'||CURSOR_COLUMNS||',:NEW.'||CURSOR_COLUMNS||')';

EXECUTE IMMEDIATE  V_SQL;

END IF;

FETCH Select_Column INTO CURSOR_COLUMNS;

END LOOP;

CLOSE Select_Column;

--  COMMIT;

--EXCEPTION

--           WHEN OTHERS THEN

--           NULL;

END T_GetOutLetVarierry;

报错:并非所有的变量都也关联

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐