是否可以从C#代码中获取或猜测oracle的oradata文件夹?从C#代码获取Oracle oradata文件夹?
例如D:\ oracle \ product \ 10.2.0 \ oradata
我的目的是创建一个自动创建表空间的安装程序,但我们需要询问用户表空间的位置。但是,如果文本字段可以预先填充“猜测”值,那么将会很好,这样如果猜测是正确的,用户就不需要做任何事情。
是否可以从C#代码中获取或猜测oracle的oradata文件夹?从C#代码获取Oracle oradata文件夹?
例如D:\ oracle \ product \ 10.2.0 \ oradata
我的目的是创建一个自动创建表空间的安装程序,但我们需要询问用户表空间的位置。但是,如果文本字段可以预先填充“猜测”值,那么将会很好,这样如果猜测是正确的,用户就不需要做任何事情。
环境变量ORA_HOME不可靠(并且只能在服务器上有效)。
,以获得一定的价值的唯一方法是通过V $ PARAMETER视图:
select value
from v$parameter
where name = 'db_create_file_dest';
虽然我不是100%,如果这有进行设置。
V $ PARAMETER通常对普通用户不可读。但是,当你要创建一个表空间时,我认为授予用户特权不是问题。
但是,您可以创建一个表空间而不指定数据文件的目录。在这种情况下,表空间将在由db_create_file_dest指定的位置创建。
文件名可以包括路径前缀。如果您没有指定这样的路径前缀,那么数据库将为平台相关的默认存储位置添加路径前缀。
(重点煤矿)
您可以通过查询Oracle数据字典数据文件的位置,做到这一点 - 但不同的表空间可以存储在不同的位置。
另外:
不要忘记,该数据库可以被配置为使用ASM或Oracle管理文件(我个人最喜欢的),在这种情况下变得更加困难或不必要地告诉甲骨文在哪里创建数据文件。
我强烈建议在安装程序之外创建表空间,因为表空间的使用通常受DBA策略的支配。