Bonjour,
Je veux inserer des données dans une table. Je veux gérer d'abord l'existance de cette table.
J'ai essayé d'utiliser
PRAGMA EXCEPTION_INIT(TT,-00942)
mais ça marche pas
Merci de me repondre
Bonjour,
Je veux inserer des données dans une table. Je veux gérer d'abord l'existance de cette table.
J'ai essayé d'utiliser
PRAGMA EXCEPTION_INIT(TT,-00942)
mais ça marche pas
Merci de me repondre
Pour savoir si la table existe, tu peux interroger le catalogue (all_tables, user_tables)
Vincent Rogier.
Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog
Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !
OCILIB (C Driver for Oracle)
Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
mais je vais chopper l'erreur oracle table or view does not exist
voilà mon code:
declare
err_tab exception;
pragme_init(err_tab,-00942);
begin
---instruction d'insertion dans ma table
exception
when err_tab then
execute immediate 'create table ...'
end;
merci de me repondre c urgent
Une piste de reflexion:
http://www.developpez.net/forums/sho...04&postcount=9
une des règles de base de ce forum est de toujours préciser la version. Merci!
Pourquoi si tu testes si la table existe ?
Tu peux faire comme ceci :
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
16
17
18
19 declare n number :=0; begin -- test existence table select count(*) into n from user_tables where table_name = '....'; if (n = 0) then -- creation table end if; -- insertion des données insert ... into ... exception end;
Vincent Rogier.
Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog
Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !
OCILIB (C Driver for Oracle)
Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
ça ne marchera pas. Le "INSERT" générera une erreur avant l'exécution!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 declare n number :=0; begin -- test existence table SELECT count(*) INTO n FROM user_tables WHERE table_name = '....'; IF (n = 0) then -- creation table end IF; -- insertion des données INSERT ... INTO ... exception end; /
ok?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 BEGIN if (1=2) then insert into gugus values (1) ; end if; END; Error at line 1 ORA-06550: line 1, column 33: PL/SQL: ORA-00942: table or view does not exist ORA-06550: line 1, column 21: PL/SQL: SQL Statement ignored
Partager