使用 SQL Server 从带有 dblink 的 SQL Server 表向 Oracle DB 表插入数据

Posted

技术标签:

【中文标题】使用 SQL Server 从带有 dblink 的 SQL Server 表向 Oracle DB 表插入数据【英文标题】:Insert Data to Oracle DB table from SQL Server Table with dblink with using SQL Server 【发布时间】:2020-03-27 19:11:23 【问题描述】:

我在 Oracle 中有一个名为 HR.ST_ADISYON_DETAY 的表。我可以发送选择命令并从那里获取数据,例如

SELECT TOP 100 * FROM OPENQUERY([HBT_CONNECTION] , 'select * from HR.ST_ADISYON_DETAY ORDER BY TARIH DESC');

我创建了 dblink。我的 dblink 名称是 HBT_CONNECTION。我想从表中删除所有数据并将新数据插入到这个 Oracle 数据库表中。但我找不到查询来做这件事。如何使用 db 链接删除和插入语句。我将在 SQL Server 中编写它。

INSERT INTO HR.ST_ADISYON_DETAY(SICIL_KOD,AD_SOYAD,URUN,MIKTAR,BIRIM_FIYAT,TOPLAM,TARIH) SELECT SICIL_KOD,AD_SOYAD,URUN,MIKTAR,BIRIM_FIYAT,TOPLAM,TO_DATE(TARIH,'MM/DD/YYYY HH:MI:SS AM') FROM VIEW_HARCAMA_BYSICIL

选择部分来自 SQL Server。插入部分来自 Oracle 数据库。

【问题讨论】:

试试这个:从 HBT_CONNECTION..HR.ST_ADISYON_DETAY 中删除。在名称中使用大写字母并在链接名称和架构名称之间使用两个点! 【参考方案1】:

试试这个:

DELETE FROM  HBT_CONNECTION..HR.ST_ADISYON_DETAYF

INSERT  INTO HBT_CONNECTION..HR.ST_ADISYON_DETAY(SICIL_KOD,AD_SOYAD,URUN,MIKTAR,BIRIM_FIYAT,TOPLAM,TARIH)
SELECT  SICIL_KOD,AD_SOYAD,URUN,MIKTAR,BIRIM_FIYAT,TOPLAM,TO_DATE(TARIH,'MM/DD/YYYY HH:MI:SS AM')
FROM    VIEW_HARCAMA_BYSICIL

【讨论】:

以上是关于使用 SQL Server 从带有 dblink 的 SQL Server 表向 Oracle DB 表插入数据的主要内容,如果未能解决你的问题,请参考以下文章

PCB SQL Server 代码创建DbLink

Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录

oracle dblink调用SQL SERVER存储过程,有具体样例吗

从 Sql Server 2008 执行 oracle 存储过程

当表在不同的架构中时,如何从 SQL Server 导入所有带有 sqoop 的表?

创建密码带有特殊字符的dblink