Ich sende einige vorbereitete SQL-Anweisung und ein Verzeichnis von Variablen für die Ersetzung mit Python 2.7 auf Server für die Remote-Ausführung auf Oracle-Datenbank.Wie zeichne Darstellung der Abfrage für Oracle-Datenbank in Python 2.7
Ich möchte endgültige Abfrage protokollieren, die auf dem Server ausgeführt wird, kann aber keine Möglichkeit finden, eine Zeichenfolgedarstellung der endgültigen Abfrage zu erhalten.
vorbereitete Anweisung Beispiel:
delete from my_table where col1=:date and col2=:string and col3=:num
Wörterbuch Beispiel:
{'date':datetime.datetime(2016, 3, 25, 0, 0), 'string':'abc', 'num':42}
Was ich bekommen (was auch immer SQL, dass meine Daten ausgeführt und mit werden könnten):
delete from my_table where col1=TO_DATE('25-03-2016 00:00','dd-mm-yyyy hh24:mi') and col2='abc' and col3=42
Es gibt keine "finale SQL" in Oracle mit vorbereiteten Anweisungen - die Werte werden nicht in Klartextform ersetzt, wie Sie möchten. Die vorbereitete Anweisung wird mit den Parametern ausgeführt, die Sie übergeben. – Mat
Vielen Dank für Ihre Antwort. Gibt es noch eine Möglichkeit, diese Art von SQL-Abfrage zu generieren? Ich denke, dass jemand schon Code dafür geschrieben hatte. – Rabodaber
Warum willst du das? Da das nicht ausgeführt wird und man sich darum kümmern muss, dass es sogar realistisch ist, erscheint es sinnlos. Protokollieren Sie einfach die Anweisung und die Parameter, wenn die Protokollierung das Ziel ist, das ist die einzige Möglichkeit, die Abfrage genau zu reproduzieren. – Mat