CREATE OR REPLACE PROCEDURE p_a IS c_sql VARCHAR2(2000); a VARCHAR2(20); b VARCHAR2(20); BEGIN a := 'tablename'; b := 'colname'; c_sql := 'update '||a||' set '||b||' = (select...)'; --DBMS_OUTPUT.PUT_LINE(c_sql); EXECUTE IMMEDIATE c_sql; commit; END;
CREATE OR REPLACE PROCEDURE p_a IS
c_sql VARCHAR2(2000);
a VARCHAR2(20);
b VARCHAR2(20);
BEGIN
a := 'tablename';
b := 'colname';
c_sql := 'update '||a||' set '||b||' = (select...)';
--DBMS_OUTPUT.PUT_LINE(c_sql);
EXECUTE IMMEDIATE c_sql;
commit;
END;
然后用动态执行命令执行sql
EXECUTE IMMEDIATE v_sql;