Toad for Oracle
でSQL
INSERT
を実行しようとしました:
INSERT INTO GRAT_ACTIVITY
(UUID, IP_ADRESS, SEND_MAIL, DATE_CREA, DATE_UPD, CREATOR, CENTER, ETAT, REQUEST)
VALUES('555-vgd9-pllkd-5513', '172.12.23.130', 'N', SYSDATE, SYSDATE, '1554', 'M18', 'I', 8842);
--COMMIT;
GRAT_ACTIVITY
テーブル構造は次のとおりです。
CREATE TABLE CASH.GRAT_ACTIVITY
(
UUID VARCHAR2(64 BYTE) NOT NULL,
IP_ADRESS VARCHAR2(15 BYTE),
SEND_MAIL VARCHAR2(1 BYTE),
DATE_CREA DATE,
DATE_UPD DATE,
CREATOR VARCHAR2(4 BYTE),
CENTER VARCHAR2(4 BYTE),
ETAT VARCHAR2(1 BYTE),
REQUEST NUMBER
)
エラーメッセージ:
ORA-00911:文字が無効です
原因:識別子は、文字と数字以外のASCII文字で始まってはいけません。最初の文字の後に$#_も使用できます。二重引用符で囲まれた識別子には、二重引用符以外の文字を含めることができます。代替引用符(q '#...#')では、スペース、タブ、またはキャリッジリターンを区切り文字として使用できません。他のすべてのコンテキストについては、SQL言語リファレンスマニュアルを参照してください。
アクション:なし
どうすれば解決できますか?
実行しているステートメントは有効です。エラーは、Toadがコマンドの一部として末尾のセミコロンを含むことを意味するようです。これは、ステートメントの一部として含まれるときにORA-00911
を引き起こします。これは、ステートメント自体の一部ではなく、クライアントのステートメントセパレーターであるためです。
Toadを混乱させるのは、次のコメントアウトされた行かもしれません( ここで説明されているように );または、すべてを単一のステートメントとして実行しようとしていることが原因である可能性があります。その場合、run scriptコマンド(F9)runステートメントの代わりに(F5)。
コメントアウトされた行を削除するだけで問題はなくなりますが、実際のコミットでこれを見た場合は、間違ったメソッドを使用してステートメントを実行している可能性があります。
Toadがコメント内のセミコロンを解析する方法についてはもう少し情報があります この関連する質問について ですが、Toadについて詳しくは説明していません。
クエリ内からセミコロン(;)、バックティック( ``)などを削除します
私は最近同じものに遭遇しました。スクリプトをドキュメントからsql developerにコピーするときのスペースが原因でした。スペースを削除する必要があり、スクリプトが実行されました。
Oracle SQLを実行するサードパーティプログラムを使用していますが、このエラーが発生しました。 SELECT
ステートメントの前に、特殊文字を含むコメント付きのメモがいくつかありました。コメントを削除することで問題は解決しました。
私は同じ問題を抱えていましたが、それは行末によるものでした。別のドキュメントからコピーしました。私はすべてを同じ行に置いてから、それらを再び分割しました。
列、テーブルの名前に$、_、および#以外の特殊文字を使用する場合、名前を二重引用符で囲む必要があります。 リンク