を実行し、ここでのコード」オラクル、私はテーブルにランダム生成データを挿入しようとしている即時挿入
テーブルemp
が3列あり - id
、name
、idmgr
を、
問い合わせの上で実行中即時ステートメントは次のようになります。
insert into emp values (13,'name25',193);
このブロックは実行されませんでした。 eステートメント(f.e.
Execute immediate 'insert into emp values ('||prac_seq.nextval||','''||'name23'','||trunc(dbms_random.value(1,300))||');'; end; Error report: ORA-00911: invalid character ORA-06512: at line 3 00911. 00000 - "invalid character" *Cause: identifiers may not start with any ASCII character other than letters and numbers. $#_ are also allowed after the first character. Identifiers enclosed by doublequotes may contain any character other than a doublequote. Alternative quotes (q'#...#') cannot use spaces, tabs, or carriage returns as delimiters. For all other contexts, consult the SQL Language Reference Manual. *Action:
そして、なぜ:
begin
Execute immediate 'insert into emp values ('||prac_seq.nextval||','''||'name23'','||trunc(dbms_random.value(1,300))||');'
end;
/
ORAは私にエラーを与えて? Commas、quotes ..すべてがチェックされ、上質です。
この場合、ネイティブ動的SQL( 'execute immediate')を使用する必要はありません - 静的SQLを使用してください。 –
直前にJUSt 2000の挿入文を使用します。それは...多くの時間がかかります。動的SQL - 7.54秒で!そうです - 必要があります。 –