2014-03-24 70 views
1

我使用的SQLAlchemy与瓶 ,我想连接到Oracle数据库以SYSDBA如何as sysdba已连接的Oracle数据库使用的SQLAlchemy

SQLALCHEMY_DATABASE_URI ='oracle+cx_oracle://sys:[email protected][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对象。但我无法弄清楚如何写

SQLALCHEMY_DATABASE_URI登录以SYSDBA

我也试过

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

但也行不通。 我得到ORA-12154:TNS:无法解析指定的”连接标识符..还有如果我删除模式= SYSDBA我得到ORA-28009连接,SYS应以SYSDBA

+0

你有什么错误?另外,如果该代码块被反引号包裹? – dirn

回答

3

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构造函数。

+1

链接似乎已经死亡。但是你的代码示例有效。好极了!只花了2天,但我终于有'cx_Oracle'工作。 – ArtOfWarfare

+0

@ArtOfWarfare:我很高兴:) PS。该链接已更新,现在正在工作。 – Scottie