Oracle db-sample-schema-19c安装(scott hr oe pm ix sh bi用户创建部署)

Windows平台上,Oracle19c软件完成安装和建库之后,在学习《Oracle SQL高级编程》的过程中,发现没有scott、hr、oe、pm、ix、sh、bi用户,需要额外动手创建部署。

一、scott用户需要利用$ORACLE_HOME\rdbms\admin\scott.sql脚本来创建。

/*1:利用SQL Plus登录sys或system as sysdba,执行脚本,创建scott用户资源*/

win+r

输入sqlplus /nolog

SQL> conn system/system as sysdba

SQL> @D:\WINDOWS.X64_193000_db_home\rdbms\admin\scott.sql

题外话:如果是Linux平台上,scott用户的创建脚本则需要执行:

SQL> @/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/utlsampl.sql

/*2:修改scott密码*/

SQL> alter user scott identified by tiger;

/*3:解锁用户*/

SQL> alter user scott account unlock;

/*4:登录scott用户,验证一下*/

SQL> conn scott/tiger

SQL> show user

/*5:也可以利用sys或system用户验证*/

SQL> SELECT OWNER, OBJECT_TYPE, COUNT(1) FROM DBA_OBJECTS WHERE OWNER IN ('SCOTT') GROUP BY OWNER, OBJECT_TYPE ORDER BY OWNER, OBJECT_TYPE;

OWNER  OBJECT_TYPE            COUNT(1)

------ -------------------- ----------

SCOTT  INDEX                        2

SCOTT  TABLE                        4

已选择 2 行。

二、hr、oe、pm、ix、sh、bi用户需要利用GitHub下载所需版本的db-sample-schema安装包内的脚本来创建。

到GitHub去下载Oracle软件版本对应的schema安装包:https://github.com/oracle/db-sample-schemas/releases/

我的Oracle19c是Windows平台的,所以我选择下载Oracle Database 19c Sample Schemas的Source code(zip)

如果你的Oracle19c是Linux平台的,则要选择下载Oracle Database 19c Sample Schemas的Source code(tar.gz)

将下载的安装包解压缩到$ORACLE_HOME\demo\schema

所需的脚本文件可以在$ORACLE_HOME\demo\schema\db-sample-schemas-19c下看到

根据README.txt和README.md文件中的提示,完成用户创建部署。

最重要的就是:README.md文件中的以下提示

### 2.3. Change all embedded paths to match your working directory

The installation scripts need your current directory embedded in

various locations.  Use a text editor or the following Perl script to

make the changes, replacing occurrences of the token `__SUB__CWD__`

with your current working directory, for example

`/home/oracle/db-sample-schemas`

```shell

perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat

```

perl这句话你要是读不懂的话,没关系。

你可以手动将db-sample-schema目录及子目录下的后缀为.sql和.dat的脚本文件中的字符串"__SUB__CWD__"替换为你自己的"$ORACLE_HOME\demo\schema\db-sample-schemas-19c"字符串,即:将字符串"__SUB__CWD__"替换为你自己的db-sample-schema文件夹路径。

同时,你要把脚本文件中涉及到的、被修改的目录字符串后面相关的子目录的 斜杠/ 改为 斜杠\ ,这是因为脚本文件中涉及到的目录都是Linux平台目录的写法,而我的Oracle数据库软件是安装在Windows平台上的,所以相关目录要与Windows平台目录的写法保持一致,这也是某些表无法正常导入数据的主要原因。

在Windows平台上,如果只是修改了"$ORACLE_HOME\demo\schema\db-sample-schemas-19c",而没有把紧随其后的子目录斜杠/ 进行修改的话,就会出现这样的错误:

看着上面这个目录写法,有没有觉得后面两个斜杠/ 很别扭?!

所以,脚本文件内的字符串"__SUB__CWD__"及涉及到的子目录的斜杠/ 需要逐一进行修改,修改完成后,一定要记得保存。

另外,因为你的平台是Windows平台,所以脚本中很多涉及目录路径的写法都要非常细节性的逐一修改到Windows平台能够认读的路径字符串。

另外,在mk_dir.sql脚本如下的语句中,纯粹的目录后面的斜杠\ 需要被删除,否则会导致语法错误。

(说点题外话:perl是跨平台的,建议用Windows的同学们,可以安装perl,这样可以通过baidu边学边用,毕竟shell、awk、sed还是很方便的文本处理工具,也便于日后自己写批处理脚本。

如果你是Linux平台上的Oracle19c安装db-sample-schema的话,替换脚本文件中的字符串时,可能会用到如下类似的命令:需要使用转义符

grep -lnr '__SUB__CWD__' *.sql */*.sql */*.dat |xargs sed -i.bak 's#__SUB__CWD__#\/u01\/app\/oracle\/product\/19.0.0\/dbhome_1\/demo\/schema\/db-sample-schemas-19c#g'

如果你打算借用虚拟机上的Linux平台的sed等命令修改Windows平台的db-sample-schema安装包里的脚本字符串,可能会用到如下类似的命令:需要使用转义符

grep -lnr '__SUB__CWD__' *.sql */*.sql */*.dat |xargs sed -i.bak 's#__SUB__CWD__#D\:\\WINDOWS\.X64_193000_db_home\\demo\\schema\\db-sample-schemas-19c#g'

在Windows平台删除已存在的db-sample-schemas-19c的文件夹时,如果弹出框提示没有权限的话,别担心,正常删除,而后刷新一下,就能看到文件夹消失了。

Windows平台上的具体安装执行如下:

win+r

输入sqlplus /nolog

SQL> conn system/system as sysdba

SQL> @$ORACLE_HOME\demo\schema\db-sample-schemas-19c\mksample.sql system sys hr oe pm ix sh bi users temp D:\$ORACLE_HOME\demo\log localhost:1521/orcl

如果你是Linux平台上的Oracle19c安装db-sample-schema的话,则需要执行:

@/u01/app/oracle/product/19.0.0/dbhome_1/demo/schema/db-sample-schemas-19c/mksample.sql system sys hr oe pm ix sh bi users temp /u01/app/oracle/product/19.0.0/dbhome_1/demo/log localhost:1521/orcl

/*检查一下用户创建部署是否成功*/

看看执行终端上的日志,看看sh用户的costs表是否被成功导入数据。


用户能够登陆、用户下的表能够查询到数据,这样才算是db-sample-schema安装部署成功。

如果sh.costs表始终没有数据,那便证明db-sample-schema没有完全成功被安装。根据终端显示的日志,仔细看看哪里出错了,逐步排查脚本,肯定是哪个地方的目录写的有问题,细致才能成功。

在Linux平台上,由于脚本中的目录都是适合Linux的,所以会很容易完成db-sample-schema的安装,sh.costs表里的数据也很容易被导入。但是如果你使用的是Windows平台,你在排错的过程中,由于需要很细致的阅读脚本,所以也能获得很多成长和进步,读透了db-sample-schema中的脚本结构和设计,你也可以自己写数据的批处理脚本程序了,代码结构也会设计的很漂亮。有得必有失,细致用心地对待每一个报错,绝对不吃亏。

我的Windows10平台的db-sample-schema安装始终不能把sh.costs表的数据完成导入,始终有报错:

loading COSTS using external table

Table created.

INSERT /*+ append */ INTO costs

*

ERROR at line 1:

ORA-29913: error in executing ODCIEXTTABLEFETCH callout

ORA-29400: data cartridge error

KUP-04020: found record longer than buffer size supported, 524288, in

D:\WINDOWS.X64_193000_db_home\demo\schema\db-sample-schemas-19c\sales_history\sa

le1v3.dat (offset=0)

你可能感兴趣的:(Oracle db-sample-schema-19c安装(scott hr oe pm ix sh bi用户创建部署))