动态PL / SQL

时间:2009-04-15 06:54:10

标签: oracle plsql

在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。劳驾;我是初学者,必须快速编写一些函数。

1 个答案:

答案 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...;