使用 python 中的函数创建 oracle 连接
create oracle connection using function in python
我正在尝试为 oracle 连接创建一个函数,它将采用下面代码中提到的参数,但似乎有些问题...
任何人都可以帮助理解如何更正它以及我在这里缺少什么吗?
import cx_Oracle
def sqlconnect(user,passwd,SID, query):
connStr = cx_Oracle.connect('user/passwd@SID')
cursor = connStr.cursor()
cursor.execute(query)
return cursor.fetchall()
if __name__ == '__main__':
sqlconnect('user','password','XEE','select * from dual')
提前致谢!
我认为还有另一种方法使用 f-strings
:
import cx_Oracle
def sqlconnect(user,passwd,dsn, query):
connStr = cx_Oracle.connect(f'{user}/{passwd}@{dsn}')
cursor = connStr.cursor()
cursor.execute(f'{query}')
return cursor.fetchall()
if __name__ == '__main__':
sqlconnect('user','password','localhost/SID','select * from dual')
字符串 user/passwd@SID
不是有效的连接字符串。除非 XEE
是 tnsnames.ora 条目,否则您需要在连接字符串中引用主机名和服务名。你可能想要这样的东西,而不是:
def sqlconnect(user, passwd, dsn, query):
conn = cx_Oracle.connect(user=user, password=passwd, dsn=dsn)
cursor = conn.cursor()
cursor.execute(query)
return cursor.fetchall()
if __name__ == '__main__':
host = "my_host_name"
service_name = "XEE"
conn_string = f"{host}/{service_name}"
sqlconnect("user", "password", conn_string, "select * from dual")
您可以参考下面的内容 link 这有助于您了解 Python 如何连接到 Oracle 数据库并且您缺少 TNS 条目或完整服务 JDBC URL 及以下是一些样本:
https://www.oracle.com/database/technologies/appdev/python/quickstartpythononprem.html
我正在尝试为 oracle 连接创建一个函数,它将采用下面代码中提到的参数,但似乎有些问题...
任何人都可以帮助理解如何更正它以及我在这里缺少什么吗?
import cx_Oracle
def sqlconnect(user,passwd,SID, query):
connStr = cx_Oracle.connect('user/passwd@SID')
cursor = connStr.cursor()
cursor.execute(query)
return cursor.fetchall()
if __name__ == '__main__':
sqlconnect('user','password','XEE','select * from dual')
提前致谢!
我认为还有另一种方法使用 f-strings
:
import cx_Oracle
def sqlconnect(user,passwd,dsn, query):
connStr = cx_Oracle.connect(f'{user}/{passwd}@{dsn}')
cursor = connStr.cursor()
cursor.execute(f'{query}')
return cursor.fetchall()
if __name__ == '__main__':
sqlconnect('user','password','localhost/SID','select * from dual')
字符串 user/passwd@SID
不是有效的连接字符串。除非 XEE
是 tnsnames.ora 条目,否则您需要在连接字符串中引用主机名和服务名。你可能想要这样的东西,而不是:
def sqlconnect(user, passwd, dsn, query):
conn = cx_Oracle.connect(user=user, password=passwd, dsn=dsn)
cursor = conn.cursor()
cursor.execute(query)
return cursor.fetchall()
if __name__ == '__main__':
host = "my_host_name"
service_name = "XEE"
conn_string = f"{host}/{service_name}"
sqlconnect("user", "password", conn_string, "select * from dual")
您可以参考下面的内容 link 这有助于您了解 Python 如何连接到 Oracle 数据库并且您缺少 TNS 条目或完整服务 JDBC URL 及以下是一些样本:
https://www.oracle.com/database/technologies/appdev/python/quickstartpythononprem.html