是否可以在FOR語句中使用動態SQL?如何在FOR循環語句中使用動態SQL?
我正在使用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語句。即使這是可能的,代碼也會變得混亂起來。我想這也是爲什麼你不會建議。 –