問題は;
です 'SELECT * FROM DUAL;'
。
ドキュメント から :
execute_immediate_statement ::=
EXECUTE_IMMEDIATE dynamic_string
{
INTO { define_variable [, define_variable ...] | record_name }
| BULK COLLECT INTO { collection_name [, collection_name ...] | :host_array_name }
}
[ USING [ IN | OUT | IN OUT ] bind_argument
[, [ IN | OUT | IN OUT ] bind_argument] ... ] [ returning_clause ] ;
...ここでdynamic_string
は(私の強調):
複数の文を単一のPL/SQLブロックで囲まない限り受け入れないため、;
セパレータは必要ありません。
EXECUTEIMMEDIATEステートメントの使用PL / SQL :