Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Verwendung des cx_Oracle-Moduls durch Python zum Betrieb der Oracle-Datenbank

Detaillierte Erläuterung der Verwendung des cx_Oracle-Moduls durch Python zum Betrieb der Oracle-Datenbank

不言
不言Original
2018-05-07 11:47:556126Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung des cx_Oracle-Moduls für den Betrieb der Oracle-Datenbank durch Python vorgestellt. Er analysiert detailliert das Herunterladen und die Installation des cx_Oracle-Moduls sowie die Verbindung zur Oracle-Datenbank, die Ausführung von SQL-Anweisungen, gespeicherten Prozeduren usw Weitere verwandte Betriebstechniken finden Sie in Form von Beispielen.

Dieser Artikel beschreibt das Beispiel für die Verwendung von Python zum Betrieb der Oracle-Datenbank mithilfe des cx_Oracle-Moduls. Teilen Sie es als Referenz mit allen:

ORACLE_SID-Parameter. Er beschreibt die Datenbankinstanz, zu der wir standardmäßig eine Verbindung herstellen möchten Mehrere Instanzen auf einer Maschine. Als nächstes müssen Sie es ändern, bevor Sie eine Verbindung über conn/as sysdba herstellen können, da hier der Standardinstanzname verwendet wird.

Kurz gesagt, Ihr Name ist beispielsweise Xiao Ming, aber Sie haben viele Spitznamen. Deine Eltern nennen dich Xiao Ming, aber deine Freunde nennen dich alle bei deinem Spitznamen.

Hier sind deine Eltern die Orakelinstanz, Xiao Ming ist der Sid und der Dienstname ist dein Spitzname.

sid wird verwendet, um jede Datenbank von einer Instanz zu unterscheiden, und der Dienstname wird für externe Links verwendet. Sie können unterschiedlich sein. Achten Sie daher darauf, welchen Namen Sie erhalten, und verwenden Sie ihn entsprechend, da sonst Fehler bei der Remote-Verbindung zu anderen Datenbanken auftreten können.

Vorwort

Es gibt viele Module, die mit Python zum Bearbeiten von Dateien geliefert werden. Wir können die Daten aus der Datei lesen und nach der Verarbeitung in die Datei schreiben. Aber für die Datenverwaltung und -analyse sind Datenbanken noch professioneller. Wenn Python mit einer Datenbank kombiniert werden kann, können die Vorteile beider kombiniert und die Effizienz verbessert werden.

Die Oracle-Datenbank wird bei der Arbeit verwendet. Python verfügt über ein Modul cx_Oracle, das mit Oracle verbunden werden kann. Um cx_Oracle verwenden zu können, müssen Sie es zuerst herunterladen.

1. Laden Sie cx_Oracle herunter

Python ist eine offizielle Website PyPI, die über eine Fülle von Modulen verfügt. cx_Oracle kann von PyPI heruntergeladen werden. Öffnen Sie die PyPI-URL https://pypi.python.org/pypi und suchen Sie nach cx_Oracle, um das Modul zu finden. Die Download-Adresse lautet http://cx-oracle.sourceforge.net/. Natürlich können Sie es auch auf andere Weise herunterladen.

Sie können es nach dem Herunterladen verwenden.

2. Verwendungsprozess

Der einfache Verwendungsprozess ist wie folgt:

① Referenzieren Sie das Modul cx_Oracle
② Datenbank
③ .Cursor abrufen
④.Cursor für verschiedene Operationen verwenden
⑤.Cursor schließen
⑥.Verbindung schließen

Hier ist ein einfaches Beispiel:

cx_Oracle.connect("Benutzername/Passwort@Oracle-Server-IP/Oracle-SERVICE_NAME")

Oracle-SERVICE_NAME abrufen:

su - oracle #Zum Oracle-Benutzer wechseln

env | 🎜>

import cx_Oracle                     #引用模块cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')  #连接数据库
c=conn.cursor()                      #获取cursor
x=c.execute('select sysdate from dual')          #使用cursor进行各种操作
x.fetchone()
c.close()                         #关闭cursor
conn.close()                       #关闭连接

Beispiel:

#coding:utf-8
import cx_Oracle
def main():
  conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo")
  cur =conn.cursor()
  r= cur.execute("select * from userinfo")
  print
  print r.fetchone()
if __name__ == '__main__':
  main()

3. Mehrere Verwendungen

Python Vorgänge in der Datenbank umfassen hauptsächlich zwei Aspekte: Der eine besteht darin, Daten zu schreiben, der andere darin, Daten zu lesen. Die Implementierung dieser beiden Aspekte kann durch SQL-Anweisungen oder gespeicherte Prozeduren erreicht werden. Daher sind die Hauptverwendungszwecke von cx_Oracle:

① Ausführen von SQL-Anweisungen

②.

4. SQL-Anweisungen ausführen

Das Ausführen von SQL-Anweisungen ist sehr einfach, wie aus dem obigen Beispiel ersichtlich ist. Verwenden Sie zum Ausführen

. Verwenden Sie fetchone oder fetchall, um die Ausführungsergebnisse auszulesen.

Das folgende Beispiel ist eine Insert-Anweisung mit Variablenbindung.

import cx_Oracle
conn=cx_Oracle.connect('load/123456@loaclhost/ora11g')
c=conn.cursor()
x=c.execute('insert into demo(v) values(:1)',['nice'])
conn.commit();
c.close()
conn.close()

cursor.executeVariablenbindung ist die gleiche wie bei Oracles dynamischem SQL. Sie verwendet einen Doppelpunkt, um den Platzhalter zu ersetzen, der lautet: 1 im Code übergeben Geben Sie eine Liste ein, die im Code ['nice'] ist. Wie viele Variablen gibt es, wie viele Werte sollten der Liste entsprechen und die Zahlen müssen konsistent sein, sonst wird ein Fehler gemeldet.

Nach der Ausführung können Sie eine Verbindungsmethode

verwenden, um die Transaktion festzuschreiben.

5. Rufen Sie gespeicherte Prozeduren und Methoden auf

Geben Sie den Code direkt ein:

connect.commit()

--存储过程代码:
CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS
BEGIN
  V2 := V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2='  '#需要有值,即len(str2)>=len(str1)
x=c.callproc('p_demo',[str1,str2])
print(str2)
c.close()
conn.close()

ruft die gespeicherte Prozedur mit der Methode

auf. In der oben genannten gespeicherten Prozedur ist der Wert einer Variablen vom Typ OUT. Wenn in Python einer Variablen vom Typ OUT ein Wert zugewiesen wird, darf die Länge der Variablen nicht kleiner sein als die in der gespeicherten Prozedur.

--函数代码:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2=c.callfunc('f_demo',cx_Oracle.STRING,[str1])
print(str2)
c.close()
conn.close()
cursor.callproc

Die zum Aufrufen der Funktion verwendete Methode ist

. Der Unterschied zum Aufruf einer gespeicherten Prozedur besteht darin, dass die Art der Übertragungsparameter angegeben werden muss.

Ende

cursor.callfuncÜber cx_Oracle können Python und Oracle-Datenbank miteinander kommunizieren, sodass die beiden ihre Stärken ergänzen können.

Python kann beispielsweise als Datenerfassungstool verwendet werden. Sie können Daten aus dem Web und aus Dateien abrufen und diese dann zur weiteren Analyse der Daten in einer Oracle-Datenbank speichern. Verwandte Empfehlungen:

Python verwendet die openpyxl-Bibliothek, um die Excel-Tabellendatenmethode zu ändern

Python verwendet das E-Mail-Modul zum Kodieren und Dekodieren von E-Mails

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung des cx_Oracle-Moduls durch Python zum Betrieb der Oracle-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn