Bonjour à Tous!
Je voudrais tester l'existence d'une sequence Oracle avant de la créer!
Qlq pourra t il m'aider?
Merci
Bonjour à Tous!
Je voudrais tester l'existence d'une sequence Oracle avant de la créer!
Qlq pourra t il m'aider?
Merci
Consulter USER_SEQUENCES ou DBA_SEQUENCES ?
Si vous obtenez une exception NO_DATA_FOUND alors votre séquence n'existe pas.
Tu peux t'inspirer de ce post :
http://www.developpez.net/forums/sho...=create+exists
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 exec for f in (select 1 from user_sequences where sequence_name='S' having count(*)=0) loop execute immediate 'create sequence s'; end loop
Je vous remercie tous pour votre aide!
Voila ce que j'ai fait:
Mais Comment faire appel à cette fonction afin d'utiliser la séquence?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 create or replace function CREER_SEQUENCE return number is NOM_SEQUENCE VARCHAR2(50 BYTE); Resultat number; cursor c is select sequence_name from user_sequences where sequence_name = 'MA_SEQUENCE'; begin OPEN C; FETCH C INTO NOM_SEQUENCE; IF C%NOTFOUND then Execute immediate ' CREATE SEQUENCE MA_SEQUENCE MINVALUE 1 START WITH 1 INCREMENT BY 10 CACHE 20'; END IF; CLOSE C; Resultat := 1; return(Resultat); end CREER_SEQUENCE;
Car dans un select comme:
J'obtiens l'erreur suivante: ORA:14552
Code : Sélectionner tout - Visualiser dans une fenêtre à part select CREER_SEQUENCE() as Champ from user_tables
et Merci!
c'est trop compliqué comme script![]()
d'abord, tu as une erreur parce qu'il est interdit de faire un code DDL dans un SELECT. Tu dois donc créé une procédure comme t'as montré laurentschneider.
Partager