代码之家  ›  专栏  ›  技术社区  ›  Grzenio

获取Oracle数据库名称

  •  1
  • Grzenio  · 技术社区  · 15 年前

    如何以编程方式获取所连接的Oracle数据库的名称?我试过:

    using (OracleConnection connection = new OracleConnection(oraConnectStr))
                {
                    connection.Open();
                    return connection.Database;
                }
    

    但它返回空字符串。我不能使用整个连接字符串,因为它可能包含用户名/密码。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Vincent Malgrat    15 年前

    你可以查询 v$database :

    SQL> SELECT NAME FROM v$database;
    
    NAME
    ---------
    PROD
    
        2
  •  6
  •   APC    15 年前

    并非每个用户都可以访问v$视图。但每个人都能做到:

    SQL> select * from global_name
      2  /
    
    GLOBAL_NAME
    ---------------------------------------------------
    ORCL
    
    SQL>
    

    编辑

    如果你想从C内解决这个问题, this article shows how to solve it through the ConnectionString .

        3
  •  0
  •   Black Frog    15 年前

    可以使用OracleConnectionStringBuilder对象。

    OracleConnectionStringBuilder ConnstorBuilder= 新建OracleConnectionStringBuilder(OracleConnectStr);

    connstrbuilder.datasource将包含您的信息。

    退房: http://download.oracle.com/docs/html/E10927_01/OracleConnectionStringBuilderClass.htm#CHDHBCDA