Выбрать таблицу для вставки / обновления оператора в Oracle? - PullRequest
0 голосов
/ 16 января 2012

Я хотел выбросить это для некоторых идей.Я пишу программу для генерации операторов вставки / обновления, и я хочу, чтобы таблица, которую я вставляю / обновляла, исходила из результатов запроса.Итак, что-то вроде (пожалуйста, прости синтаксис):

INSERT INTO (SELECT TBL_NAME FROM MYTABLES WHERE A=B) VALUES ('A', 'B', 'C');

Я должен сделать это в Oracle, но я не слишком знаком с их операторами объявления или синтаксисом.Я предполагаю, что лучший способ сделать это - объявить переменную, которая является результатом SELECT, но затем я могу использовать эту переменную в качестве имени таблицы для INSERT?

Я также хочу сохранитькод в SQL.

Спасибо за любые идеи.

Ответы [ 2 ]

4 голосов
/ 16 января 2012

Я думаю, что вы, возможно, захотите посмотреть Динамический SQL , вы можете найти свой ответ (или, по крайней мере, достойный начальный путь) там.

0 голосов
/ 17 января 2012

Примерно так:

SELECT 'INSERT INTO ' || TBL_NAME || ' VALUES (''A'', ''B'', ''C'');' cmd
FROM MYTABLES WHERE A=B
;

Запустите этот выбор, затем запустите результаты выбора (который является оператором вставки).Не забудьте "совершить".

С уважением, Роджер. Все взгляды мои ...

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