在做Oracle数据库实验时都会用到一些示例SCHEMA如:HR、OE、SH等,在Oracle11g版本时在DBCA时直接勾选Sample Schemas就可以安装这些示例SCHEMA,如下图:
但到了Oracle12.2 版本,也有一个示例Schemas选项卡如下图所示:
但是数据库安装完成后却还是没有这些示例SCHEMA,到底是怎么回事呢?我们来查一下官方文档:
Starting with Oracle Database 12c Release 2, the latest version of the sample schema scripts are available on GitHub at https://github.com/oracle/db-sample-schemas/releases/latest.
During a complete installation of Oracle Database, the HR schema can be installed either manually or automatically when creating a database using the dbca
option. All the other sample schemas must be installed manually via the scripts available on GitHub.
从上面的官方文档中我们可以看到从Oracle12.2版本开始,示例Schemas的脚本被放到了GitHub上,在DBCA安装时只会安装hr示例Schema。从文档中给出的指定地址下载示例Schema安装脚本:
从README.txt文档中找到安装方法,开始安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
sys@ORA12C>@mksample
specify password
for
SYSTEM as parameter 1:
Enter value
for
1: 123456
specify password
for
SYS as parameter 2:
Enter value
for
2: 123456
specify password
for
HR as parameter 3:
Enter value
for
3: hr
specify password
for
OE as parameter 4:
Enter value
for
4: oe
specify password
for
PM as parameter 5:
Enter value
for
5: pm
specify password
for
IX as parameter 6:
Enter value
for
6: ix
specify password
for
SH as parameter 7:
Enter value
for
7: sh
specify password
for
BI as parameter 8:
Enter value
for
8: bi
specify default tablespace as parameter 9:
Enter value
for
9:
users
specify temporary tablespace as parameter 10:
Enter value
for
10: temp
specify log
file
directory (including trailing delimiter) as parameter 11:
Enter value
for
11:
/home/oracle/dbca
specify connect string as parameter 12:
Enter value
for
12: localhost:1521
/ora12c
Sample Schemas are being created ...
mkdir
: cannot create directory ‘
/home/oracle/dbca
’: File exists
Connected.
DROP USER hr CASCADE
*
ERROR at line 1:
ORA-01918: user
'HR'
does not exist
DROP USER oe CASCADE
*
ERROR at line 1:
ORA-01918: user
'OE'
does not exist
DROP USER pm CASCADE
*
ERROR at line 1:
ORA-01918: user
'PM'
does not exist
DROP USER ix CASCADE
*
ERROR at line 1:
ORA-01918: user
'IX'
does not exist
DROP USER sh CASCADE
*
ERROR at line 1:
ORA-01918: user
'SH'
does not exist
DROP USER bi CASCADE
*
ERROR at line 1:
ORA-01918: user
'BI'
does not exist
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/human_resources/hr_main.sql"
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/order_entry/oe_main.sql"
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/product_media/pm_main.sql"
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/info_exchange/ix_main.sql"
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/sales_history/sh_main.sql"
Connected.
SP2-0310: unable to
open
file
"__SUB__CWD__/bus_intelligence/bi_main.sql"
Connected.
not spooling currently
SP2-0310: unable to
open
file
"__SUB__CWD__/mkverify.sql"
|
从上面看到输出报错,没有安装成功。报错的是“__SUB__CWD__”没有找到,打开mksample.sql文件,确实有这个变量,但不知道在哪里声明的。
重新查看README.md文档看到需要把“__SUB__CWD__”这个变量替换为当前路径,还给出了命令:
1
|
[oracle
@rhel7
db-sample-schemas-12.2.0.1]$ perl -p -i.bak -e
's#__SUB__CWD__#'
$(pwd)
'#g'
*.sql */*.sql */*.dat
|
执行完上面的脚本后重新安装示例Schema:
1
|
sys@ORA12C>@mksample 123456 123456 hr oe pm ix sh bi users
temp
/home/oracle/dbca/ 192.168.56.22:1521/ora12c
|
最终安装成功:
1
2
3
4
5
6
7
8
9
10
|
system@ORA12C>
select
username,created
from
dba_users
where
created>sysdate-1;
USERNAME CREATED
------------------------------ -----------------
OE 20170816 23:32:22
SH 20170816 23:34:25
PM 20170816 23:33:13
IX 20170816 23:34:12
BI 20170816 23:36:20
HR 20170816 23:32:07
|