cx_Oracle paramytle named

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
anja_f
User
Beiträge: 2
Registriert: Dienstag 22. April 2014, 14:01

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
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@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?
anja_f
User
Beiträge: 2
Registriert: Dienstag 22. April 2014, 14:01

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Gibt es da nicht Backup-Tools von Oracle um genau sowas zu machen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Leonidas hat geschrieben:Gibt es da nicht Backup-Tools von Oracle um genau sowas zu machen?
Ja klar. Der Klassiker ist exp.
Antworten