2010-02-17 7 views
6

J'ai un fichier avec le script folowing:SqlPlus ne se terminant pas un script SQL

BEGIN 
    ... 
    a bunch of inserts 
    ... 
    COMMIT; 

EXCEPTION 
    WHEN OTHERS THEN ROLLBACK; 
END; 

Lorsque j'exécute cela dans sqlplus j'obtiens ce qui suit:

SQL> @file.sql 
382 

Il est comme s'il ne se termine pas le bloc . Je suis nouveau à l'aide de pl/sql et sqlplus, donc je ne sais pas si je fais quelque chose de mal.

Des idées?

Répondre

9

Vous devez ajouter une ligne supplémentaire après la FIN finale; comme ceci:

/ 

Juste une barre oblique comme le premier caractère sur la ligne, puis une nouvelle ligne.

+0

On dirait que j'ai posté ma réponse en même temps. Merci d'avoir répondu. – Megacan

0

Ok, je l'ai compris. J'aurais dû chercher mieux dans la documentation avant de poster la question ici.

Quoi qu'il en soit selon ce lien: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#sthref840

SQL * Plus traite des sous-programmes PL/SQL de la même manière que les commandes SQL, sauf qu'un point-virgule (;) ou une ligne blanche ne met pas fin et exécuter un bloc. Terminez les sous-programmes PL/SQL en entrant un point (.) Par lui-même sur une nouvelle ligne. Vous pouvez également terminer et exécuter un sous-programme PL/SQL en entrant une barre oblique (/) par lui-même sur une nouvelle ligne.

Au lieu de END, vous devez terminer par /.