一、PLSQL的安装以及连接配置
PL/SQL Developer v16
下载地址:https://www.jb51.net/softs/820654.html
使用 PL/SQL
前需要安装 Oracle
的 instance client
或者直接安装一个 Oracle
数据库。地址如下:
- instance client 地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
- oracle 地址:https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html
我这里下载的是 Windows
版本的 Oracle Database 19c
,地址(注意需要登录Oracle官网下载):https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#license-lightbox
使用 PL/SQL Developer v16
连接远程 Oracle
数据库,首先配置本地的 tnsnames.ora
文件,如下:
bash
# tnsnames.ora Network Configuration File: D:\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpdb)
)
)
DevServerORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.80.189.43)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
上述配置文件内容中的 DevServerORAL
为远程数据库的连接配置,重启本地的 OracleOraDB19Home1TNSListener
,如下:
重启监听服务后,在 PL/SQL
中登录,如下:
二、导入导出表数据
登录 plsql
后,点击 Tools >> Export Tables
,导出一个 dpe
文件,该文件是表的数据文件,如下:
导出 dpe
文件后,需要导出表结构,点击 Tools >> Export User Objects
,生成一个 sql
文件,如下:
因为我这里 dpe
导出的表数据是 C##RY_NET
这个表空间下的表,所以还需要创建表空间,如下:
sql
-- Create the user
create user C##RY_NET
default tablespace USERS
temporary tablespace TEMP
profile DEFAULT
password expire
IDENTIFIED BY Afxm1234
quota unlimited on users;
-- Grant/Revoke system privileges
grant create session to C##RY_NET;
grant unlimited tablespace to C##RY_NET;
在需要导入表数据的数据中,需要执行上述 sql
语句以创建表空间,之后使用导出的 sql
脚本创建表结构,然后需要分配表空间配额和权限,如下:
sql
-- 分配表空间配额及权限
SELECT tablespace_name FROM dba_tablespaces;
SELECT * FROM dba_ts_quotas WHERE tablespace_name = 'USERS';
ALTER USER SYSTEM QUOTA UNLIMITED ON USERS;
SELECT * FROM dba_sys_privs WHERE grantee = 'C##RY_NET';
SELECT * FROM dba_sys_privs WHERE grantee = 'SYSTEM';
GRANT CREATE SESSION TO C##RY_NET;
GRANT UNLIMITED TABLESPACE TO C##RY_NET;
GRANT SELECT, INSERT, UPDATE, DELETE ON C##RY_NET.DM_BED TO C##RY_NET;
-- 创建链接数据库
CREATE DATABASE LINK dblink_yybip
CONNECT TO yybip
IDENTIFIED BY Afxm2024 USING
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.80.189.12)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))';
-- 查看所有的数据库链接
SELECT * FROM dba_db_links;
-- 查看当前用户的数据库链接
SELECT * FROM user_db_links;
-- 查询远程数据库中的数据
SELECT * FROM IUAP_APDOC_BASEDOC.BO_ORGADMIN@DBLINK_YYBIP;
最后,在需要导入表数据的服务器上使用 plsql
,点击 Tools >> Import Tables
,将 pde
文件中的表数据导入,如下: