如何查找在其中创建Oracle DBF文件的默认位置?

Mic*_*ael 4 sql oracle dbf

在Oracle数据库中创建新表空间期间,用户必须输入他(或她)想使用的DBF文件名。然后在特定位置创建DBF文件。

用户还可以指定在其中创建DBF文件的路径。

我需要找到一种方法来获取DBF文件的默认位置。

我知道如何通过使用SQL查询在MS Sql中执行此操作:

select substring(physical_name, 1, charindex(N'master.mdf', lower(physical_name)) - 1) from master.sys.master_files where database_id = 1 and file_id = 1;
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在Oracle中做到这一点。我已经尝试了几件事:

  • 进行查询all_directories-在那里找不到任何信息
  • v$datafile查看了该视图-意识到该视图和其他视图仅对数据库管理员可用

还有一些限制:

  • 可以将Oracle数据库安装在具有不同操作系统的另一台计算机上。
  • 我的应用程序可能使用不是管理员的用户连接到数据库。
  • 最好使用SQL查询来完成。

任何帮助深表感谢。

Mar*_*lli 5

DB_CREATE_FILE_DEST指定 Oracle 管理的数据文件的默认位置(请参阅数据库参考中的条目)。

您可以使用以下 SQL 查询检索其值:

select value from v$parameter where name = 'db_create_file_dest'
Run Code Online (Sandbox Code Playgroud)

要访问v$parameter视图,用户至少需要SELECT_CATALOG_ROLE角色。


Cyr*_*972 5

为了确定默认的数据文件位置,我使用以下查询:

SELECT DISTINCT SUBSTR (file_name,
                        1,
                        INSTR (file_name,
                               '/',
                               -1,
                               1))
  FROM DBA_DATA_FILES
 WHERE tablespace_name = 'SYSTEM'
Run Code Online (Sandbox Code Playgroud)

它适用于ME,因为我们所有的数据文件都安装在同一目录中。


nek*_*739 5

与系统用户一起使用此语句:

  Select * from dba_data_files ;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明