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
Version imprimable
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)
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:
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;
ça ne marchera pas. Le "INSERT" générera une erreur avant l'exécution!Code:
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:
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
bien vu !:oops: