使用 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 表插入数据的主要内容,如果未能解决你的问题,请参考以下文章
Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录
oracle dblink调用SQL SERVER存储过程,有具体样例吗
从 Sql Server 2008 执行 oracle 存储过程