2010-06-09 6 views
2

Je veux changer le délimiteur:comment changer le délimiteur dans sqlplus dans l'oracle 11g

que quelqu'un peut me aider à changer le délimiteur dans sqlplus dans Oracle 11g

CREATE OR REPLACE TRIGGER test_trigger 
BEFORE INSERT ON test 
REFERENCING NEW AS NEW FOR EACH ROW 
BEGIN 
SELECT test_sequence.nextval INTO :NEW.ID FROM dual; 
END; 
/

c'est le déclencheur que je veux créer. mais après l'instruction Select, elle s'arrête à cause de; y a-t-il. c'est pourquoi je veux changer le délimiteur. J'espère que tout le monde aura l'idée là-dessus maintenant ..

+0

Quel délimiteur? Déclaration? Colonne? Chaîne? –

+0

Vérifiez la modification que j'ai faite. Je pense qu'il sera utile pour vous – Bharat

Répondre

2

Il n'y a rien de mal à la syntaxe de votre déclencheur. Je peux l'exécuter dans mon environnement SQL * Plus (vanille):

SQL> CREATE OR REPLACE TRIGGER test_trigger 
    2 BEFORE INSERT ON test 
    3 REFERENCING NEW AS NEW FOR EACH ROW 
    4 BEGIN 
    5 SELECT test_sequence.nextval INTO :NEW.ID FROM dual; 
    6 END; 
    7/

Trigger created. 

SQL> 

Et voilà! le déclencheur fonctionne:

SQL> insert into test (col1) values ('Simples!') 
    2/

1 row created. 

SQL> select * from test 
    2/

     ID COL1 
---------- ------------ 
     1 Simples! 

SQL> 

Tout ce que je peux penser est que vous avez des lignes vides dans le code que vous tapez. Si tel est le cas, vous pouvez remplacer le comportement par défaut avec ce SQL * commande Plus:

SQL> set sqlblanklines on 
1

Est-ce que vous cherchez

select q'#Oracle's quote operator#' from dual; 

Q'#ORACLE'SQUOTEOPERATO 
----------------------- 
Oracle's quote operator 

Edit 1:

CMDS[EP] {;|c|OFF|ON} 

    Change or enable command separator - default is a semicolon (;) 
+0

lorsque nous écrivons un sql ou tout ce que nous mettons; pour terminer la ligne. donc dans un déclencheur je ne peux pas faire la gâchette correctement parce que quand j'appuie sur que cela termine la ligne. Impossible de taper les deux dernières lignes. C'est y que je veux changer le délimiteur. Quelqu'un peut-il m'aider – Nubkadiya

+0

@NubKadyia, pouvez-vous modifier votre question pour mettre cette information avec le code de déclenchement problématique afin que nous vous aidons? –

+0

@Nubkadiya, je vous suggère de couper et coller exactement ce que vous tapez dans SQLPlus et la sortie que vous obtenez. Ce n'est pas clair pour moi pourquoi le point-virgule vous causerait des ennuis. –

1

Si vous utilisez SQLPlus et pas un autre outil, je ne suis pas sûr du problème, mais voici la réponse à votre question:
Pour modifier le séparateur de commande de la valeur par défaut de ; utiliser

SQL> set cmdsep/
SQL> show cmdsep 
cmdsep "/" (hex 2f) 

Pour restaurer la valeur par défaut une fois que vous avez créé votre déclencheur:

SQL> set cmds off 
SQL> show cmds 
cmdsep OFF 
0
SQL> set sqlt/

pour définir terminaison sql «/'

SQL> show sqlt 

pour vérifier le SLCR actuel

Questions connexes