プロシージャ内にテーブルを作成したい。作成クエリを文字列に入れて、すぐに文字列を実行しようとしました。例えば:
create or replace procedure hr.temp is
var1 varchar2(4000);
begin
var1:='create table hr.temp(
id number)';
execute immediate var1;
end temp;
しかし、この手順を実行すると、次のエラーが発生します。
ORA-00911: invalid character
ORA-06512: at "SYS.TEMP", line 6
.
.
.
これを行う方法はありますか?
これを試して。それはうまくいくはずです...
create or replace procedure hr.temp is
var1 varchar2(4000);
BEGIN
var1:='create table hr.temp2(
id number)';
EXECUTE IMMEDIATE var1;
end temp;
m.r'a_horse_with_no_name 'の答えは正しいです。最初のポイントは、sysスキーマでテーブルを作成するべきではないということです。
2番目のポイントは、動的SQLにあります。動的SQLでは;
文字を使用しないでください。