If Table Exist [oracle]

AJAX Lauch

Mitglied
Hi,

Also ich habe mir einen INSERT gebaut und nun will ich prüfen ob die Tabelle schon existiert oder nicht, in diesem Fall müsste ich ein CREATE machen.

Wie kann ich in ORACLE prüfen ob eine Tabelle schon existiert?
Bekomm ich eine Fehlermeldung wenn ich ein CREATE versuche obwohl die Tabelle schon existiert?


Vielen Dank schon mal im Vorraus
 
Hallo,

du könntest mit CREATE or REPLACE ... arbeiten.

Wenn die Tabelle existiert wird sie geändert ansonst neue erstellt.

mfg
 
Hallo,

du könntest mit CREATE or REPLACE ... arbeiten.

Wenn die Tabelle existiert wird sie geändert ansonst neue erstellt.

mfg

@mschuetzda : In Oracle ? Das wäre mir neu.

@AJAX Lauch : Wenn die Tabelle schon exisitiert, bekommst du einen ORA-00955. Das heisst allerdings noch nicht, das es eine Tabelle diesen Namens schon gibt, es könnte auch eine gleichnamige View sein. Du kannst aber mit select TABLE_NAME from user_tables die Tabellen des entsprechenden Users abfragen und dort nachsehen, ob es die Tabelle schon gibt

Gruss
 
Zuletzt bearbeitet:
für Views gilt das, aber nicht für Indizes und Tabellen:

SQL:
SQL> create or replace table emp (a number);
create or replace table emp (a number)
                  *
FEHLER in Zeile 1:
ORA-00922: missing or invalid option

SQL> create or replace index emp_idx on emp(empno);
create or replace index emp_idx on emp(empno)
                  *
FEHLER in Zeile 1:
ORA-00922: missing or invalid option

SQL> create or replace view emp_view as select * from emp;

View wurde erstellt.

Für Tabellen wär es meiner Einschätzung nach auch ein recht fragwürdiges Feature, mit dem man sich ein Produktivsystem in kürzester Zeit ruinieren könnte.

Gruß

MP
 
Ja, okay,
hätte es besser selber erst nochmal getestet, statt mich auf mein schlechtes Gedächtnis zu verlassen :eek: :mad: :rolleyes: :rtfm: :-( ... usw.

mfg
(tja, wie Dieter Hildebrandt sagte: ... )
 
Zurück