私は非常に厄介な問題に直面しています。私は(Notepad ++で)いくつかのSQLスクリプトを書いています。 SQL * Plus(Windows 7のコマンドラインから)でそれらを実行しようとすると、ORA-00933: SQL command not properly ended
のようなエラーが発生します。SQL * PlusはSQL Developerが実行するSQLスクリプトを実行しません
次に、&をコピーしてSQL Developerワークシート・ウィンドウに貼り付け、「実行」ボタンを押してスクリプトを問題なく実行します。
長い調査の後、私はSQL * Plusが理解できない一部の空白(改行文字やタブを含む)に問題があると考えました。
私は、奇妙な空白を取り除く方法を知っていると仮定しているので、私はこれを試しました。SQL Developerワークシートウィンドウにスクリプトを貼り付け、SQLスクリプトにコピーして貼り付けます。これは一部のファイルで問題を解決しましたが、すべてのファイルでは解決しませんでした。一部のファイルでは、明らかな理由がなくても場所にエラーが表示され続けます。
これまでにこの問題が発生しましたか?コマンドラインでSQL * Plusによってこれらのスクリプトを実行できるようにするにはどうすればよいですか。
UPDATE:
SQL * Plusで動作しますが、SQL Developerを使用した仕事をしたしませんでしたスクリプトの例:
SET ECHO ON;
INSERT INTO MYDB.BOOK_TYPE (
BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED
)
SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM
(SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
;
私が取得エラー:
SQL> SQL> SET ECHO ON;
SQL>
SQL> INSERT INTO MYDB.BOOK_TYPE (
2 BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED
3 )
4 SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM
5
SQL> (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
2 (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
3
SQL> ;
1 (SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
2* (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
エラーが表示されるのは(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
です(何らかの理由でこのエラーが発生するすべてのファイルで、エラーは前の最後の行に表示されます)最後のセミコロン)
を? –
@ Mark J. Bobak:上記の**更新**をご覧ください。 – rapt