2017-08-31 5 views
1

Ich habe versucht, einfach eine Tabelle mit der Struktur einer anderen Tabelle zu erstellen, um ihre Inhalte später zu synchronisieren. Wenn "CREATE as SELECT" verwendet wird, wird nur der Fehler zurückgegeben. ORA-00933 "SQL-Befehl nicht ordnungsgemäß beendet"ORACLE ORA-00933 bei Verwendung von CREATE als SELECT

Wie im Link erwähnt, sollte die Syntax in Ordnung sein. https://www.techonthenet.com/oracle/tables/create_table2.php Beide Tabellen sollten im selben Benutzerschema gespeichert werden. Der einzige Unterschied ist das hinzugefügte Benutzerschema und der Tablespace.

CREATE TABLE "MYUSER.TABLE_B" 
as (SELECT * FROM "MYUSER.TABLE_A") 
TABLESPACE "SANDBOX" ; 
+0

Ge verwenden. – OldProgrammer

+1

Möglicherweise falsche Syntax für die Platzierung von Tablespace? https://stackoverflow.com/questions/20620595/creating-a-table-from-a-query-using-a-different-tablespace-oracle-sql – xQbert

+0

die Anführungszeichen waren Teil des Problems, wurden aber von einigen verwendet generierter Code im SQLD-Assistenten. Ich behielt sie für den Fall, dass eine Abfrage über einen DBlink zu einem anderen Shema sie benötigt. TABLESPACE war anscheinend an der falschen Stelle, aber ich benutze es an dieser Position beim Erstellen neuer Tabellen und es funktioniert gut. Auch danke für das Aufzeigen der anderen Antwort, ich fand es nicht, wenn ich SO suchte – Alex

Antwort

1

ich nicht Oracle-Datenbank jetzt mit mir, aber ich bin sicher, können Sie wie this- all jener doppelten Anführungszeichen los

CREATE TABLE "MYUSER.TABLE_B" 
TABLESPACE "SANDBOX" 
AS 
SELECT * 
FROM "MYUSER.TABLE_A"; 
Verwandte Themen