この記事では、主に、Oracle データベースを操作するための Python の簡単なメソッドとカプセル化クラスを紹介し、Python での Oracle データベースの単純な接続、クエリ、シャットダウンの基本操作を分析し、Oracle のさまざまな操作のための Python カプセル化クラスも提供します。 . 困っている友達は参考にしてください
この記事では、Python で Oracle データベースを操作するための簡単な方法とカプセル化クラスについて説明します。詳細は次のとおりです。
最近仕事で Oracle に触れることがあり、さまざまな場所で Python スクリプトを使用するとはるかに便利であることがわかりました。まず、Python で Oracle を操作する基本的な方法を学びます。
Oracle の使用と OracleClient の NetConfig の存在を考慮すると、接続は簡単なことではないと思います。
案の定、インターネットでいくつかの接続方法を見つけて、それから長々と描いたのですが、スクープは見つかりませんでした。
方法 1: ユーザー名、パスワード、モニタリングはそれぞれパラメーターとして使用されます
conn=cx_Oracle.connect('用户名','密码','数据库地址:数据库端口/SID')
私が読んだいくつかの記事やコード作成時のエラーに関するヒントによると、Python が接続するための設定項目がデータベースは Oracle と同じである必要があります。クライアント構成ファイル tnsnames.ora が関連しています。しかし、私の設定項目には SID の項目がなく、最初は SID が何かもわからず、インターネットに書かれていることをそのまま実行したため、この方法は失敗しました。その後、構成項目に SID を追加する必要があることがわかり、この構成の後にシステムを再起動する必要があるかどうかを考えました。それで、最初に他の方法を見てみましょう...
方法 2: ユーザー名、パスワード、監視は 1 つのパラメーターとして使用されます
conn=cx_Oracle.connect('用户名/密码@数据库地址:数据库端口/SID')
この方法は基本的に方法 1 と同じですが、異なる点があります。薬...
方法 3: tns 設定情報を使用する
conn=cx_Oracle.connect('用户名','密码',tns)
tns を取得するためのインターネット上のコードは関数を使用して行われ、SID は引き続き使用されますが、... 設定項目SID がない場合はすでに使用できるので、
tns=cx_Oracle.makedsn('数据库地址','数据库端口', 'SID')
を使用します。 それでも機能しませんが、この tns の生成方法を見てください。上記の 2 つの方法と似ています。しかし、SIDをランダムに入力すると生成されるデータは次のようになっていることがわかりました。
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SID=XE)))
ただし、私のクライアントの設定は項目はおそらく次のようになります。
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))
見た目は同じで、型はすべて文字列型です。ファイル内の構成項目を tns に直接割り当ててみてください。
りーうーん。成功しました~
最後に、基本的な使用法の完全なコードを投稿します
tns = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))' conn = cx_Oracle.connect('nicker', '123456', tns)
観察と発見の概要は非常に重要であり、理解も必要です
Oracleをカプセル化するクラスを投稿します
#coding:utf-8 import cx_Oracle # 创建数据库连接 # cx_Oracle.connect('username','pwd','ora的tns信息') # oracle数据库的tns信息,从tnsnames.ora中找到plsql可用的配置项,将该配置项直接拷贝过来即可 ora_tns = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=KGDB)))' conn = cx_Oracle.connect('nicker', '123456', ora_tns) # 操作游标 cursor = conn.cursor() # 执行查询 cursor.execute("SELECT * FROM inst_info") # 获取返回信息 rs = cursor.fetchall() # 输出信息 for v in rs: print v #关闭连接,释放资源 cursor.close() conn.close()
関連する推奨事項:
cx_Oracle モジュールを使用して Oracle データベースを操作する Python の詳細な説明
以上がPython で Oracle データベースを操作するための簡単なメソッドとカプセル化されたクラスの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。