Oracle PL / SQL: копировать данные между таблицами, заданными в переменных - PullRequest
0 голосов
/ 17 марта 2020

У меня есть 2 таблицы с переменными:

SOURCE_TABLE_NAME STRING(10) := 'TABLE1';
TARGET_TABLE_NAME STRING(10) := 'TABLE2';

Мне нужно написать хранимую процедуру в Oracle 12 PL / SQL, чтобы скопировать некоторые строки из SOURCE_TABLE_NAME в TARGET_TABLE_NAME.

Какой способ лучше использовать?

  • CURSOR
  • SYS_REFCURSOR
  • Любые другие способы?

1 Ответ

0 голосов
/ 17 марта 2020

Если у вас нет заранее списка столбцов, но столбцы абсолютно одинаковы, вы можете использовать:

INSERT INTO table_name_to_go SELECT * FROM initial_table_name;

Если у них другой порядок столбцов, вам необходимо переопределить их в вашем SELECT примере:

INSERT INTO table_name_to_go -- column order: C1,C3,C2 and initial table order: C1,C2,C3
SELECT C1, C3, C2 FROM initial_table_name;

Db Fiddle

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