【问题标题】:Get Oracle oradata folder from c# code?从 c# 代码获取 Oracle oradata 文件夹?
【发布时间】:2012-07-19 07:35:23
【问题描述】:

是否可以通过 C# 代码获取或猜测 oracle 的 oradata 文件夹?

例如D:\oracle\product\10.2.0\oradata

我的目的是创建一个自动创建表空间的安装程序,但我们需要询问用户表空间的位置。但是,如果可以在文本字段中预先填充“猜测”值,那就太好了,这样如果猜测正确,用户就不需要做任何事情。

【问题讨论】:

    标签: c# .net oracle oracle10g oracleclient


    【解决方案1】:

    环境变量 ORA_HOME 不可靠(无论如何只在服务器上有效)。

    获得确定值的唯一方法是通过 V$PARAMETER 视图:

    select value
    from v$parameter
    where name = 'db_create_file_dest';
    

    虽然我不是 100% 如果这个必须被设置。

    V$PARAMETER 通常对普通用户不可读。但是当你要创建一个表空间时,我想授予用户该权限不是问题。

    但是您可以在不指定数据文件目录的情况下创建表空间。在这种情况下,表空间将在 db_create_file_dest 指定的位置创建。

    来自the manual

    文件名可以包含路径前缀。如果不指定这样的路径前缀,那么数据库会添加默认存储位置的路径前缀,这取决于平台。

    (强调我的)

    【讨论】:

      【解决方案2】:

      您可以通过在 Oracle 数据字典中查询数据文件的位置来做到这一点——但不同的表空间可能存储在不同的位置。

      还有:

      不要忘记,数据库可能配置为使用 ASM 或 Oracle 托管文件(我个人最喜欢),在这种情况下,告诉 Oracle 在哪里创建数据文件变得更加困难或没有必要。

      我强烈建议在安装程序之外创建表空间,因为表空间的使用通常受 DBA 政策的约束。

      【讨论】:

        猜你喜欢
        • 2016-03-11
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多