1.oracle是一个容器
首先要搞懂oracle的性质,我最开始一直在终端里面复制本地的资源,怎么都找不到。后来才想通,对啊,得先把资源拷贝到docker里面,然后在docker中才能导入sql文件,被自己蠢哭😭
2.流程
2.1先把文件拷贝到docker容器中
首先进入docker容器:获取容器ID,然后把ID粘贴到下面那一行语句。
lldeMacBook-Pro:~ ll$ docker ps -q;
0fc02469a814
lldeMacBook-Pro:~ ll$ docker exec -it 0fc02469a814 /bin/bash;
root@oracle:/#
如果这时获取不到容器ID的话就试着重启一下docker
2.2将文件从本地拷贝到docker中
可以先pwd一下查看当前路径,然后新建一个db文件夹来放置要拷贝进来的sql文件
root@oracle:/# pwd
/
root@oracle:/# ls
bin dev lib mnt sbin sys usr
boot etc lib64 opt root srv tmp var
db home media proc run start.sh u01
root@oracle:/#
然后把本地中的文件拷贝进docker中
root@oracle:/# oracle cp /Users/ll/Desktop/del_data.sql /db;
root@oracle:/# cd db;
root@oracle:/db# ls
del_data.sql hr_cre.sql hr_popul.sql
root@oracle:/db#
第一行语句中的文件的路径可以通过直接把文件拖进终端来获取到.
3.1 在oracle中执行SQL文件
首先要进入oracle数据库
root@oracle:/db# sqlplus system/oracle
显示这些就成功了
SQL*Plus: Release 11.2.0.2.0 Production on Sun Aug 30 00:47:14 2020
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-28002: the password will expire within 6 days
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
然后执行刚刚导入到oracle中的sql 文件,在@后面写路径
SQL> @ /db/del_data.sql;
显示这些就成功了
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
Commit complete.