この記事では主に、Oracle データベースを操作するための Python による cx_Oracle モジュールの使用方法と、cx_Oracle モジュールのダウンロードとインストール、Oracle データベースへの接続、SQL ステートメントの実行、ストアド プロシージャ、およびその他の関連操作テクニックを詳細に分析します。例の形式は必須です。友人はこの記事を参照してください
この記事の例では、Python が cx_Oracle モジュールを使用して Oracle データベースを操作する方法について説明します。参考のために全員と共有してください: ORACLE_SID パラメータ。このパラメータは、マシン上に複数のインスタンスがある場合に、デフォルトで接続するデータベース インスタンスを記述します。ここではデフォルトのインスタンス名が使用されているため、これを変更する必要があります。 要するに、例えばあなたの名前はシャオミンですが、あなたにはたくさんのあだ名があります。あなたの両親はあなたのことをシャオミンと呼んでいますが、友達は皆あなたのことをあだ名で呼んでいます。 ここで、あなたの両親は Oracle インスタンス、Xiao Ming は SID、サービス名はあなたのニックネームです。 sidは各データベースとインスタンスを区別するために使用され、サービス名は外部リンクに使用されます。 異なる場合があるため、取得した名前に注意して適切に使用してください。そうしないと、他のデータベースにリモートで接続するときにエラーが発生する可能性があります。はじめに
Python には、ファイルを操作するためのモジュールが多数付属しています。ファイルからデータを読み取り、処理後にデータをファイルに書き込むことができます。しかし、データの管理と分析に関しては、データベースの方がまだ専門的です。 Python をデータベースと組み合わせることができれば、両方の利点を組み合わせて効率を向上させることができます。 私は仕事で Oracle データベースを使用していますが、Python には Oracle に接続できるモジュール cx_Oracle があります。 cx_Oracle を使用するには、まず cx_Oracle をダウンロードする必要があります。1. モジュールが豊富に揃っている公式サイト PyPI である cx_Oracle
Python をダウンロードします。 cx_Oracle は PyPI からダウンロードできます。 PyPI URL https://pypi.python.org/pypi を開き、cx_Oracle を検索してモジュールを見つけます。ダウンロード アドレスは http://cx-oracle.sourceforge.net/ です。もちろん、他の方法でダウンロードすることもできます。 ダウンロード後ご利用いただけます。2. 使用プロセス
簡単な使用プロセスは次のとおりです: ①. データベースに接続します③. カーソルを使用してさまざまな操作を実行します
⑤. カーソルを閉じます
⑥. 接続を閉じます
簡単な例を示します:
cx_Oracle.connect("Username/Password@Oracle Server IP/Oracle の SERVICE_NAME")
Oracle の SERVICE_NAME:
su - oracle #Oracle ユーザーに切り替えます
env | grep ORACLE #Query ORACLE 環境変数
ORACLE_SID=benguo # benguo は SERVICE_NAME です
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() #关闭连接
りー
3いくつかの使用法
データベースに対する Python の操作には主に 2 つの側面が含まれます: 1 つはデータの書き込みで、もう 1 つはデータの読み取りです。これら 2 つの側面の実装は、SQL ステートメントまたはストアド プロシージャを通じて実現できます。 cx_Oracle の主な用途は、
① SQL ステートメントの実行 ② です。4. SQL ステートメントを実行する
上記の例からわかるように、SQL ステートメントの実行は非常に簡単です。 cursor.execute
を使用して実行します。実行結果を読み出すには、fetchone または fetchall を使用します。
cursor.execute
即可执行。使用fetchone或fetchall即可将执行结果读出来。
下面一个例子是Insert语句,使用的变量绑定。
#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()
变量绑定和Oracle的动态SQL一样,都是冒号将占位符,即代码中的:1,对变量的复制就是传入一个List,即代码中的['nice']。有多少个变量,list中就应该对应多少个值,数目要一致,否则会报错。
执行之后,可以使用连接的一个方法connect.commit()
,将事务提交。
5. 调用存储过程和方法
直接上代码:
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()
--存储过程代码: CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS BEGIN V2 := V1; END;
调用存储过程使用的是cursor.callproc
方法。上面的存储过程中,一个变量的值是OUT型的,在Python中,对OUT型的变量赋值,主要该变量的长度不能小于存储过程中的。
#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()
--函数代码: CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS BEGIN RETURN V1; END;
调用函数使用的方法是cursor.callfunc
#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()
変数バインディングは Oracle の動的 SQL と同じです。 コロンはプレースホルダーです。コードでは 1 変数のコピーがリストに渡されます。これは ['nice' です。コード。 ]。変数はいくつあり、リストに対応する値はいくつありますか。数値は一貫していなければなりません。そうでない場合はエラーが報告されます。 実行後、接続メソッド connect.commit()
のいずれかを使用してトランザクションをコミットできます。
コードに直接移動します:
🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜cursor.callproc
メソッドを使用してストアド プロシージャを呼び出します。上記のストアド プロシージャでは、変数の値は OUT 型です。Python では、OUT 型の変数に値を代入する場合、変数の長さをストアド プロシージャの値より小さくすることはできません。 🎜🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜 関数の呼び出しに使用されるメソッドは cursor.callfunc
です。これとストアド プロシージャの呼び出しの違いは、送信パラメータの種類を指定する必要があることです。 🎜🎜🎜🎜終了🎜🎜🎜🎜 cx_Oracle を介して、Python と Oracle データベースは相互に通信できるため、両者の長所を補完できます。 🎜🎜たとえば、Python をデータ収集ツールとして使用すると、Web およびファイルからデータを取得し、Oracle データベース上のデータをさらに分析するためにそのデータを Oracle データベースに保存できます。 🎜🎜関連するおすすめ: 🎜Pythonはopenpyxlライブラリを使用してExcelテーブルデータメソッドを変更します
Pythonは電子メールモジュールを使用して電子メールをエンコードおよびデコードします
以上がcx_Oracleモジュールを使ってOracleデータベースを操作するPythonの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。