C:\echo %ORACLE_HOME%
C:\app\oracle\product\19.3.0\dbhome_1 --(on your system oracle home should be C:\app\elle\product\19.3.0\dbhome_1)
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show parameter db_create_file_dest
PARAMETER_NAME TYPE VALUE
------------------------------ ---------- -----------
db_create_file_dest string D:\oradata
SQL> CREATE TABLESPACE test; -- 1 without datafile parameter
Tablespace created.
SQL> alter session set db_create_file_dest='D:\oradata\ORCL\orclpdb'; --2
Session altered.
SQL> create tablespace test01;
Tablespace created.
SQL> create tablespace test03 datafile 'D:\ORADATA\ORCL\ORCLPDB\TEST03.DBF' size 100M; --3 with datafile parameter
Tablespace created.
SQL>COL T_NAME FORMAT A6
SQL>select t.name t_name,d.name datafile
from v$datafile d
join v$tablespace t
on d.ts#=t.ts#
where t.ts# in (select ts# from v$tablespace
where name like 'TEST%')
T_NAME DATAFILE
------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TEST D:\ORADATA\ORCL\4A506465BEFC4D16865F184CA10BAD44\DATAFILE\O1_MF_TEST_HNRC8S4O_.DBF --1
TEST01 D:\ORADATA\ORCL\ORCLPDB\ORCL\4A506465BEFC4D16865F184CA10BAD44\DATAFILE\O1_MF_TEST01_HNRCMPH1_.DBF --2
TEST03 D:\ORADATA\ORCL\ORCLPDB\TEST03.DBF --3
您正在关注与 Unix/Linux O/s 相关的示例。从您的其他帖子中,您的目录结构确实是一团糟,最重要的是,您正在为
PDB
Oracle 主目录或 Oracle 二进制文件创建目录,这是一个很大的NO
例如
C:\App\db_home\WINDOWS.X64_193000_db_home>mkdir -p /u01/pdb1/
遵循适用于 Windows OFA的 Oracle 文档。
在我的个人桌面上设置 Oracle 19c
CDB/PDB 数据文件(这是我在不同驱动器上创建的个人桌面 ORADATA,但根据 OFA 数据文件应放在 ORACLE_BASE 目录中的 ORADATA 目录中,例如 C:\app\oracle\ORADATA)
如您所见,基于参数,
db_create_file_dest
所有数据文件都在根文件夹中创建。使用参数而不是使用创建的D:\ORADATA
pdb (因为它已经在初始化参数中设置)file_name_convert('D:\ORADATA\ORCL\PDB$SEED','D:\ORADATA\ORCL\ORCLPDB')
db_create_file_dest
使用or跟随示例(这些示例在 Linux O/S 上)
DBCA
SQLPLUS
这是在 PDB 中创建表空间的有趣部分
切换到 PDB 容器
避免使用第 2 条语句。Oracle 对没有数据文件参数的表空间使用内部数据文件命名约定。
编辑:-
Oracle Base 中的目录
当然 ORADATA 目录应该在那里(因为我在不同的驱动器中设置了 ORADATA 它不在图像中)。
将来在 Windows 上首先从命令提示符创建 oracle 主目录(我有 18.3 zip 文件。)
C:\mkdir -p C:\app\oracle\product\18.3\db_home1
然后解压到上面的目录
你是什么意思“这个人用什么程序来 mkdir 为他的 create_file_dest 文件?”
他在 shell 提示符下。他正在使用 shell 自己的内部“mkdir”命令。
他在哪里创建这个文件?它不是一个文件,它是一个目录。当您最终设置 CREATE_FILE_DEST(这是数据库的初始化参数)时,数据库将使用该目录作为使用 oracle CREATE TABLESPACE 或 ALTER TABLESPACE .. ADD DATAFILE' 命令创建的任何数据文件的默认位置。
答案是 CREATE_FILE_DEST 目录在哪里并不重要。