Seite 1 von 1

cx_Oracle paramytle named

Verfasst: Montag 7. Juli 2014, 17:59
von anja_f
Hallo,

ich komme hier gerade so gar nicht weiter. Ich möchte ein SQL Query starten, aber leider bekomme ich immer diese Fehlermeldung:

Code: Alles auswählen

cursor.execute("INSERT INTO :tableNameOracleNew VALUE (SELECT * FROM :tableNameOracleOrg)", {"tableNameOracleNew":tableNameOracleNew, "tableNameOracleOrg":tableNameOracleOrg})
cx_Oracle.DatabaseError: ORA-00903: invalid table name
Meine Query ist wie oben schon zu sehen

Code: Alles auswählen

cursor.execute("INSERT INTO :tableNameOracleNew VALUE (SELECT * FROM :tableNameOracleOrg)", {"tableNameOracleNew":tableNameOracleNew, "tableNameOracleOrg":tableNameOracleOrg})
Es sieht so aus als würden die Variablen gar nicht ersetzt werden? Die Tabellen existieren auf jeden Fall. Und der paramstyle ist auch "named", das habe ich auch schon überprüft.

Hat jemand vielleicht irgendeine Idee was ich falsch mache? Wenn ich das ganze unsicher laufen lasse, also

Code: Alles auswählen

cmd = "INSERT INTO %s VALUE (SELECT * FROM %s)", %(tableNameOracleNew, tableNameOracleOrg) 
funktioniert es problemlos. Die Tabellen haben keinerlei Sonderzeichen.

Bin über jede Hilfe dankbar!
Grüße
Anja

Re: cx_Oracle paramytle named

Verfasst: Montag 7. Juli 2014, 18:03
von Sirius3
@anja_f: Variablen kann man in SQL-Statements nur für Werte, nicht aber für Tabellennamen und -spalten benutzen. Es deutet normalerweise fast immer auf einen Designfehler hin, wenn variable Tabellennamen »gebraucht« werden. Was willst Du eigentlich erreichen?

Re: cx_Oracle paramytle named

Verfasst: Montag 7. Juli 2014, 18:05
von anja_f
Ich möchte nur ein einfaches Backup der Tabelle machen damit ich dort Daten löschen und hinzu fügen kann ohne meine eigentliche Tabelle zu verändern.

Re: cx_Oracle paramytle named

Verfasst: Samstag 19. Juli 2014, 11:44
von Leonidas
Gibt es da nicht Backup-Tools von Oracle um genau sowas zu machen?

Re: cx_Oracle paramytle named

Verfasst: Samstag 19. Juli 2014, 23:43
von /me
Leonidas hat geschrieben:Gibt es da nicht Backup-Tools von Oracle um genau sowas zu machen?
Ja klar. Der Klassiker ist exp.