29

TOAD、SqlDeveloperがIPアドレス、ユーザー名、SID、およびパスワードだけでデータベースに接続できるように、IPアドレスを介してリモートサーバーに接続するにはどうすればよいですか。

IPアドレスを指定しようとすると、ローカルで取得しているようです。

つまり、cx_Oracle.connect()の文字列を非ローカルデータベースにフォーマットするにはどうすればよいですか?

次のコードでcx_Oracleモジュールを介してOracleに接続する回答としてリストされた以前の投稿がありました。

#!/usr/bin/python

import cx_Oracle
connstr='scott/tiger'
conn = cx_Oracle.connect(connstr)
curs = conn.cursor()

curs.execute('select * from emp')
print curs.description
for row in curs:
    print row
conn.close()
4

6 に答える 6

61

私はそれをこのようにするのが好きです:

ip = '192.168.0.1'
port = 1521
SID = 'YOURSIDHERE'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)

db = cx_Oracle.connect('username', 'password', dsn_tns)

このメソッドが好きな主な理由の1つは、通常、TNSNAMES.ORAファイルがどこかにあることです。次のようにすることで、dsn_tnsオブジェクトが正しいことを実行することを確認できます。

print dsn_tns

出力を私のTNSNAMES.ORAと比較します

于 2009-12-09T00:27:27.430 に答える
29

接続文字列でサーバーを指定できます。次に例を示します。

import cx_Oracle
connstr = 'scott/tiger@server:1521/orcl'
conn = cx_Oracle.connect(connstr)
  • "server" はサーバー、または必要に応じて IP アドレスです。
  • 「1521」は、データベースがリッスンしているポートです。
  • 「orcl」は、インスタンス (またはデータベース サービス) の名前です。
于 2009-07-25T09:18:09.707 に答える
-1
import cx_Oracle
ip = '172.30.1.234'
port = 1524
SID = 'dev3'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)

conn = cx_Oracle.connect('dbmylike', 'pass', dsn_tns)
print conn.version
conn.close()
于 2018-02-22T03:27:31.280 に答える