Динамический PL / SQL - PullRequest
0 голосов
/ 15 апреля 2009

В 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 Ответ

2 голосов
/ 17 апреля 2009

Вы можете сделать то же самое для INSERT или UPDATE, что вы сделали для SELECT - используйте динамический SQL, например:

EXECUTE IMMEDIATE 'INSERT INTO '||target_schema||'.my_table (col1,col2...) VALUES(:val1, :val2...)' USING my_row.col1, my_row.col2...;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...