如何在cx_oracle.connect中指定服务器上的特定数据库

问题描述 投票:0回答:2

我必须连接到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,而不必每次都添加。

python oracle cx-oracle
2个回答
0
投票
您的示例中的

“ uuuu”似乎是架构名称,而不是数据库名称。您不能在连接字符串中指定架构名称(除非以“ uuuu”用户身份登录)。但是,一旦连接到数据库,就可以运行语句

alter session set current_schema = uuuu;

将导致该陈述

select * from my_table

在“ uuuu”模式中查找my_table对象,而不是在当前用户的模式中查找该对象。另外,您可以为my_table和要引用的其他“ uuuu”模式对象创建同义词(公共或私有)。


0
投票

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(默认端口)。

© www.soinside.com 2019 - 2024. All rights reserved.