在PL / SQL中,我想将源和目标模式作为参数传递给存储过程。对于来源,我们可以使用:
PROCEDURE select_from_schema( the_schema VARCHAR2)
IS
TYPE my_cursor_type IS REF CURSOR;
my_cursor my_cursor_type;
BEGIN
OPEN my_cursor FOR 'SELECT my_field FROM '||the_schema||'.my_table';
-- Do your FETCHes just as with a normal cursor
CLOSE my_cursor;
END;
对于目标插入或更新语句,我们如何在插入或更新语句中使用该模式....有谁知道我该怎么做?
P.S。劳驾;我是初学者,必须快速编写一些函数。
答案 0 :(得分:2)
对于为SELECT执行的INSERT或UPDATE,您可以执行相同的操作 - 使用动态SQL,如下所示:
EXECUTE IMMEDIATE 'INSERT INTO '||target_schema||'.my_table (col1,col2...) VALUES(:val1, :val2...)' USING my_row.col1, my_row.col2...;