Можно ли использовать динамический SQL в операторе FOR?Как использовать динамический SQL в инструкции цикла FOR?
Я использую цикл FOR для обработки партии записей из инструкции SELECT. Однако, если я хочу, чтобы оператор SELECT, создаваемый во время выполнения, например имя таблицы, может храниться в переменной.
for thisRecord as
select myColumn from MyTable --can this be dynamic?
do
.......
end for;
Я хочу что-то вроде следующего
declare myCursor cursor for stmt;
set dynamicStmt = 'select myColumn from '||varTable;
prepare stmt from dynamicStmt;
for thisRecord as myCursor
do
......
end for;
Не могли бы вы обернуть все выражения cusor/FOR в динамическом sql? Не советовал бы это, но я предполагаю, что это возможность. –
Как часть хранимой процедуры, обязательно (... как еще вы планируете использовать оператор 'FOR'?). Но что вы пытаетесь выполнить? Я немного беспокоюсь каждый раз, когда кто-то хранит имена таблиц для динамических операторов ... –
@ AllanS.Hansen Я думаю, что не могу, поскольку FOR - это некоторые виды логических управляющих операторов, таких как IF..ElSE вместо SQL-операторов. Даже это возможно, коды будут разбросаны. Думаю, поэтому и не советую. –