SQL*Plus de ne pas exécuter les scripts SQL SQL Developer n'

Je suis confronté à un très ennuyeux problème. J'ai écrit (dans Notepad++) des scripts SQL. Maintenant quand j'essaye de les exécuter par SQL*Plus (par le biais de la ligne de commande sur Windows 7), j'obtiens des erreurs comme ORA-00933: SQL command not properly ended.

Puis-je copier & collez le script dans le SQL Developer fenêtre de feuille de calcul, cliquez le bouton Exécuter, et le script s'exécute sans aucun problème/erreurs.

Après une longue enquête, j'en suis venu à penser que SQL*Plus a un problème avec certains espaces (y compris les caractères de saut de ligne et les tabulations) qu'il ne comprend pas.

Car je suppose que SQL Developer sait comment se débarrasser de l'étrange espaces, j'ai essayé ceci: collez le script dans le SQL Developer fenêtre de feuille de calcul, puis copiez-le et collez-le dans le script SQL. Qui a résolu le problème pour certains fichiers, mais pas tous les fichiers. Certains fichiers montre des erreurs dans des endroits sans aucune raison apparente.

Avez-vous déjà eu ce problème? Que dois-je faire pour être en mesure d'exécuter ces scripts SQL*Plus, par le biais de la ligne de commande?

Mise à JOUR:

Un exemple de script qui ne fonctionne pas avec SQL*Plus, mais a fait un travail avec 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

;

L'erreur que je reçois:

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

Comme vous le voyez l'erreur est sur (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B (pour quelque raison dans tous les fichiers que vous obtenez cette erreur, l'erreur s'affiche sur la dernière ligne avant la conclusion d'un point-virgule.)

Pouvez-vous ajouter une (de préférence de petite taille) exemple d'un script qui ne fonctionne pas?
J. Bobak: Veuillez consulter la mise à JOUR ci-dessus.

OriginalL'auteur rapt | 2012-05-02