1. ホーム
  2. sql

[解決済み] [ORA-00911: invalid character エラーはどうすれば解決できますか?

2022-04-13 13:32:43

質問

を実行しようとしました。 SQL INSERT をもって Toad for oracle :

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を混乱させているのは、以下のコメントアウトされた行かもしれません( ここに書かれているように ); あるいは、すべてを単一のステートメントとして実行しようとしているためかもしれません。その場合は、スクリプトの実行コマンド ( F9 ) の代わりに実行ステートメント ( F5 ).

コメントアウトされた行を削除するだけで問題は解決しますが、もし実際のコミットでもこの現象が見られた場合は、ステートメントを実行する方法が間違っている可能性が高いです。

Toad がコメント中のセミコロンをどのように解析するかについては、もう少し詳しい情報があります。 この関連質問について しかし、私はこれ以上詳しく説明できるほどToadに精通しているわけではありません。