本文共 3749 字,大约阅读时间需要 12 分钟。
在做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 .
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 |
参考: