在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查看了该视图-意识到该视图和其他视图仅对数据库管理员可用还有一些限制:
任何帮助深表感谢。
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角色。
为了确定默认的数据文件位置,我使用以下查询:
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,因为我们所有的数据文件都安装在同一目录中。