cx_oracle.connect 如何在服务器上指定具体的数据库
How to specify the specific database on the server in cx_oracle.connect
我必须连接到 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
这样我就不必每次都添加。
来自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(默认)。
"uuuu" 在您的示例中似乎是架构名称而不是数据库名称。您不能在连接字符串中指定架构名称(除非以 "uuuu" 用户身份登录)。但是,一旦连接到数据库,您就可以 运行 语句
alter session set current_schema = uuuu;
这将导致语句
select * from my_table
在 "uuuu" 架构中查找 my_table
对象,而不是在当前用户的架构中查找。或者,您可以为 my_table
和您要引用的其他 "uuuu" 架构对象创建同义词(public 或私有)。
我必须连接到 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
这样我就不必每次都添加。
来自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(默认)。
"uuuu" 在您的示例中似乎是架构名称而不是数据库名称。您不能在连接字符串中指定架构名称(除非以 "uuuu" 用户身份登录)。但是,一旦连接到数据库,您就可以 运行 语句
alter session set current_schema = uuuu;
这将导致语句
select * from my_table
在 "uuuu" 架构中查找 my_table
对象,而不是在当前用户的架构中查找。或者,您可以为 my_table
和您要引用的其他 "uuuu" 架构对象创建同义词(public 或私有)。