我正在开发一个应用程序,并使用如下连接字符串与 Oracle 数据库建立有效连接:
"Data Source=(DESCRIPTION=(ADDRESS=(COMMUNITY=tcpcomm)(PROTOCOL=TCP)(HOST=mydatabasehost.myserver.com)(PORT=1529))(CONNECT_DATA=(SERVICE_NAME=code123.myserver.com))); User Id=user;Password=123456;";
我检查过,我还可以在笔记本电脑上使用 Oracle SQL Developer 连接到该数据库。
现在我尝试使用 Azure 逻辑应用 Oracle 连接器连接到 Oracle 数据库。
奥 git _a
但它需要:
serverhost:port/sid
我只尝试了 serverhost:port 但它也无法连接,给出如下错误:
Test connection failed. Details: Oracle: ORA-12154: TNS:could not resolve the connect identifier specified inner exception: Oracle: ORA-12154: TNS:could not resolve the connect identifier specified clientRequestId:
我尝试了这 3 个查询:
select distinct sid from v$mystat;
select * from global_name;
select value from v$parameter where name='service_names';
但是当我选择 SID 时,返回的值都无法在本地工作。
我明白
Invalid Username/password; logon denied
在逻辑应用上出现此错误: 无法为连接 ID 创建连接
'/providers/Microsoft.PowerApps/apis/shared_oracle/connections/shared-oracle-....'. Encountered internal server error from Data Transfer Service. The tracking Id is '...'.
在本地,如果我使用 SERVICE_NAME 那么它就可以工作。但为了使用逻辑应用连接器,我需要 SID。
如何通过在 Oracle SQL Developer 上现有的 Oracle 连接中键入 SQL 查询来找出 SID?或者如何使用 SERVICE_NAME 从 Azure 逻辑应用进行连接?
服务器是否有可能不接受使用 SID 的连接,而只接受使用服务名称的连接?
最佳答案
您可以通过查询现有 Oracle SQL Developer 连接中的 v$thread View 来找到 SID:
如果 ORACLE_SID = DB_SID
SQL> select instance from v$thread;
INSTANCE
----------------
DB_SID
有关 DB_NAME 和 ORACLE_SID 的更多信息 here
关于oracle - 如何使用 SQL 查询查找 Oracle 数据库的 SID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68323376/