如何以编程方式获取我要连接的Oracle数据库的名称?我试过了:
using (OracleConnection connection = new OracleConnection(oraConnectStr))
{
connection.Open();
return connection.Database;
}
但它返回空字符串。我无法使用整个连接字符串,因为它可能包含用户名/密码。
答案 0 :(得分:6)
并非每个用户都可以访问V $视图。但每个人都可以这样做:
SQL> select * from global_name
2 /
GLOBAL_NAME
---------------------------------------------------
ORCL
SQL>
修改强>
如果你想从c#,this article shows how to solve it through the ConnectionString内部解决这个问题。
答案 1 :(得分:1)
您可以查询v$database
:
SQL> SELECT NAME FROM v$database;
NAME
---------
PROD
答案 2 :(得分:0)
您可以使用OracleConnectionStringBuilder对象。
OracleConnectionStringBuilder connStrBuilder = 新的OracleConnectionStringBuilder(oraConnectStr);
connStrBuilder.DataSource将包含您的信息。
退房: http://download.oracle.com/docs/html/E10927_01/OracleConnectionStringBuilderClass.htm#CHDHBCDA