如何使用SQLALchemy以oracle db身份连接sysdba

时间:2014-03-24 20:19:07

标签: python oracle sqlalchemy flask flask-sqlalchemy

我正在使用sqlalchemy和烧瓶 我想以sysdba

的身份连接到oracle DB
 SQLALCHEMY_DATABASE_URI ='oracle+cx_oracle://sys:abc@DBNAME[mode=SYSDBA]'

这不起作用并给我一个

 from flask import Flask  
 from flask.ext.sqlalchemy import SQLAlchemy

 app = Flask(__name__)
 app.config.from_object('config')
 db = SQLAlchemy(app)   
 from app import views,models

我稍后会使用这个db对象。但我无法弄清楚如何写

以sysdba

登录的SQLALCHEMY_DATABASE_URI

我也试过

CONN = cx_Oracle.connect('sys/abc', dsn='DBNAME', mode = cx_Oracle.SYSDBA)
SQLALCHEMY_DATABASE_URI = CONN

但这也不起作用。  我得到ORA-12154:TNS:无法解析指定的连接标识符“..如果我删除mode = SYSDBA我得到ORA-28009连接,因为SYS应该是SYSDBA

1 个答案:

答案 0 :(得分:4)

您的dsn参数错误。您还必须将userpassword参数分开。试试这个(它为我工作):

dsn_tns = cx_Oracle.makedsn('host', port, 'sid')
CONN = cx_Oracle.connect('sys', 'abc', dsn_tns, mode=cx_Oracle.SYSDBA)

有关详细信息,请参阅cx_Oracle.connect构造函数。