为oracle19c创建hr样例数据库
报了ORA-20000: Schema “HR” does not exist or insufficient privileges错找了半天才找到解决方法。
前言
这学期开了大型数据库的课,要用Oracle的数据库。但老师的实验是用Oracle的样例数据库。而我看了看,我没有这个啊。
怎么办呢?查了一下,原来是这个数据库要自己安装。于是跟着教程走了一遍,不过出了点问题,但搜了一下还是解决了。
于是记录一下,方便自己以后用以及和我遇到了一样的问题的人。
环境
- Windows10 1909
- Oracle Database 19c 19.3
- Oracle Database 19c Client (19.3)
安装步骤
不知道你是安的client
还是db
。最开始我安的db
,但老师又安了client
,所以我也跟着安装,结果这东西好像client
的覆盖了db
的路径。莫名其妙的。也不知道db
安装了到底有啥用。
总之我发现现在的环境变量是client
的而不是db
的。而我们要安装这个样例数据库的话,可以用Oracle官方的脚本,但这个脚本是包含在db
的而不是client
里的。所以要用的话可以从db
的文件夹里复制脚本到client
的文件夹里。
找到脚本
从db
里复制
去你下的那个安装包解压的地方,比如\WINDOWS.X64_193000_db_home
这样的。
然后复制这个文件夹下的demo
文件夹到\WINDOWS.X64_193000_client_home
这个文件夹里。
用这个方法的是和我一样先装了db
后装了client
的。如果你只装了db
或者先装了client
后装了db
的那就无所谓了,因为默认的环境变量的下面就有这个。
从github上下载
Oracle官方在github上放了脚本来安装样例数据库,可以点这里去下载最新的脚本。
下载完了后,把里面的文件夹都拷出来,放的位置是\WINDOWS.X64_193000_client_home\demo\schema
。没有这个文件夹的可以自己创建。
安装
总之现在把脚本放在了指定的地方,其实也可以不放在这里,但我主要是为了方便用环境变量做解释。
现在连接sqlplus,用sys账号,以sysdba的身份登录
然后输入如下的命令
1 |
|
现在就是正式创建了,输入之前的命令后会出现下面这样的字样。
我一步步翻译解释一下吧。
- 输入HR的密码
这里我输入的是hr作为密码
1 |
|
- 输入HR的默认表空间
这里我把user
作为默认表空间
1 |
|
- 输入HR的临时表空间
这里我把temp
作为临时表空间
1 |
|
- 输入log存放的地址
这里我把直接把它放在了数据库程序的 ~/demo/schema/log/
这个文件夹里面
1 |
|
这个时候有些人会报错,像下面这样
1 |
|
报错 ORA-20000: Schema “HR” does not exist or insufficient privileges
这是因为HR用户之前没有被创建,而脚本自己好像又建不了。而Oracle 19c 要求自建用户的用户名的格式是 c##hr
而不是 hr
这样的。但我们要求用的用户名是hr
。所以就得输入下面的命令来改变一下。
1 |
|
然后我们就可以再运行上面的脚本来搞定了。
当出现下面这样的字样时就说明搞定了
1 |
|
现在我们打开新的终端或者sql devoloper来连接试试吧。
参考文章
oracle 19c创建sample schema-HR,OE,SH等等
ORA-20000: Schema “HR” does not exist or insufficient privileges in Oracle Database 19C(主要参考的这篇文章)