我必须连接到Oracle服务器,并且只能使用服务器上的特定数据库。我有这样的登录信息:
hostname = 'xxxxx.yyyy.xxxx.net:1521/{server_name}'
user_name= 'user'
password = 'password'
db_name= 'uuuu'
cx_Oracle.connect(user_name, password, hostname)
如何在connect语句的connect语句中指定db_name?
以上内容使我可以查询:select * from uuuu.my_table;
。因此,如何在连接中指定uuuu
,而不必每次都添加。
“ uuuu”似乎是架构名称,而不是数据库名称。您不能在连接字符串中指定架构名称(除非以“ uuuu”用户身份登录)。但是,一旦连接到数据库,就可以运行语句
alter session set current_schema = uuuu;
将导致该陈述
select * from my_table
在“ uuuu”模式中查找my_table
对象,而不是在当前用户的模式中查找该对象。另外,您可以为my_table
和要引用的其他“ uuuu”模式对象创建同义词(公共或私有)。
从docs ...
import cx_Oracle
userpwd = ". . ." # Obtain password string from a user prompt or environment variable
connection = cx_Oracle.connect("hr", userpwd, "dbhost.example.com/orclpdb1", encoding="UTF-8")
连接字符串末尾的'ocrlpdb1',即在dbhost.example.com上运行的数据库的服务名称。我们假设该计算机上的Oracle Listener正在使用端口1521(默认端口)。