avatar

后端/oracle使用dblink

查看所有的 dblink

1
select * from ALL_DB_LINKS;

查看用户权限

1
SELECT * FROM USER_SYS_PRIVS;

赋予权限

1
GRANT CREATE PUBLIC DATABASE LINK TO SYSTEM;

创建 dblink

1
2
3
4
5
6
CREATE DATABASE LINK oracle143
CONNECT TO system IDENTIFIED BY oracle
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=1.0.0.143)(PORT=11521))
(CONNECT_DATA=(SERVICE_NAME=xe))
)';

– DROP DATABASE LINK oracle143; 删除

操作

1
CREATE TABLE SETL_D AS  SELECT * FROM XXX.SETL_D@oracle143

踩坑:

当执行远程 dblink 的查询语句时,出现报错

ORA-22992: cannot use LOB locators selected from remote tables

这是因为这个表有的列不支持 lob

我们来到远程数据库,执行一下这个命令。

1
2
3
SELECT table_name, column_name, data_type
FROM all_tab_columns
WHERE data_type LIKE '%LOB%' AND table_name ='FEE_LIST_D';

可以看到相关的列。在 select 语句不要使用* ,而是具体指定你需要的字段即可

文章作者: 小黑
文章链接: http://ynxh.xyz/2023/11/02/后端/oracle使用dblink/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小黑的小站
打赏
  • 微信
    微信
  • 支付寶
    支付寶
2