2

Oracle 10g Express Edition には、次のコード部分があります。

CREATE TABLE SALARY (
   GRADE               number(1),
   LOSAL               number(4),
   HISAL               number(4));

   INSERT INTO SALARY VALUES (1,700,1200);
   INSERT INTO SALARY VALUES (2,1201,1400);
   INSERT INTO SALARY VALUES (3,1401,2000);
   INSERT INTO SALARY VALUES (4,2001,3000);
   INSERT INTO SALARY VALUES (5,3001,9999);

SQLコマンドのように入力したいのですが、問題は、[実行]ボタンを押すと、次のメッセージが表示されることです。

ORA-00911: 無効な文字です

構文を確認しましたが、すべて問題ないようです。間違いはありませんか?

4

8 に答える 8

1

あなたはOracle Expressについて言及しています。これらのステートメントを実行するために、(ブラウザーを介して) Web フロントエンドを使用していますか?

その場合: Web フロントエンドでは、一度に複数のステートメントを実行することはできません。

Oracle Express の Web フロントエンドを使用する場合は、各ステートメントを個別に実行する必要があります。

Oracle の SQL Developer は無料で、SQL ツールとしてははるかに優れています。または、SQL*Plus を使用するか、世の中にある多くの SQL クライアントのいずれかを使用します。

于 2012-09-03T05:12:41.570 に答える
1

コードのその部分は、正しい形式の 6 つのステートメントで構成されていますが、正しい形式の 1 つのステートメントでは構成されていませ。各ステートメントを個別に実行する必要があります。(ちなみに、それが文句を言っている「無効な文字」は;、最初の 2 つのステートメントの間のセミコロンです。最後のステートメントの最後にあるセミコロンを削除しています。これは、ステートメントの終わりであることがわかるからです。ステートメント間のセミコロンを削除しないでください。これは、1 つの大きなステートメントの途中にあることがわかっているためです。)

于 2012-09-03T04:49:16.793 に答える
0

commit;挿入ステートメントの後にステートメントを記述する必要があります...問題が解決することを願っています。

于 2012-09-03T04:51:40.740 に答える
0

NUMBER(p) これは、精度が p で位取りが 0 の固定小数点数です。NUMBER(p,0) と同等です。

数値がオラクルの範囲で保持できる最大数は、エラーの問題である可能性がある 1 から 38 です。

これはあなたに役立つかもしれません... http://ss64.com/ora/syntax-datatypes.html

于 2012-09-03T10:44:18.090 に答える
0

問題が解決しない場合はINSERT ALL 、関連する投稿Where's my invalid character (ORA-00911)と、これを行う方法に関するリファレンスを参照してください: http://psoug.org/snippet/INSERT-ALL_589.htm

于 2012-09-03T04:56:20.183 に答える
0

すべてをメモ帳にコピーしてから、メモ帳からコピーして、もう一度クエリ アナライザーに貼り付けます。メモ帳に貼り付けると、非表示の特殊文字が削除されます。

于 2012-09-03T04:48:15.237 に答える
-1

テーブルを作成し、コードで値を挿入しようとすると、正常に完了しました。

SQL> CREATE TABLE SALARY (
  2     GRADE               number(1),
  3     LOSAL               number(4),
  4     HISAL               number(4));

Table created.

SQL> 
SQL>    INSERT INTO SALARY VALUES (1,700,1200);

1 row created.

SQL>    INSERT INTO SALARY VALUES (2,1201,1400);

1 row created.

SQL>    INSERT INTO SALARY VALUES (3,1401,2000);

1 row created.

SQL>    INSERT INTO SALARY VALUES (4,2001,3000);

1 row created.

SQL>    INSERT INTO SALARY VALUES (5,3001,9999);

1 row created.

1つ試してみてください

于 2012-09-03T05:07:32.120 に答える