求一个触发器或解决办法
有个sql server表A如果有数据插入的话就向另一台Oracle数据库的表b中插入该条数据。
如果直接搞不行的话,我想先在A中触发让新添数据追加到C:aa.txt中,然后再由啊aa.txt存储到b中,参考代码(论坛中搜到的)如下:
1、向已经存在的文本文件中追加数据
insert into
opendatasource( 'MICROSOFT.JET.OLEDB.4.0 ', 'Text;DATABASE=C:\ ')...[aa#txt]
select * from a
2、把文本文件导入库中
EXEC master..xp_cmdshell 'bcp "dbname..tablename " in c:\DT.txt -c -Sservername -Usa -Ppassword '
各位高手给段正确的解决办法吧!!!!!
------解决方案--------------------添加链接服务器
写触发器
插入时把内容插入的链接服务器中
------解决方案--------------------oracle不熟
------解决方案--------------------oracle不熟
幫頂吧
------解决方案--------------------简单方法:
企业管理器-> 安全性-> 链接服务器-> 右键新建
------解决方案--------------------添加链接服务器比较好,这样就相当对一个表操作了
EXEC sp_addlinkedserver
@server = 'ORacleDB ',
@srvproduct = 'Oracle ',
@provider = 'MSDAORA ',
@datasrc = 'MyServer '
GO
在触发器中写INSERT语句就好了
------解决方案--------------------insert into OPENQUERY(链接服务器, 'select * from 表B ' )
select * from 表A
------解决方案--------------------鏈服務器數據源選“Microsoft OLE DB Provider for Oracle”
數據源:你配置的Tnsnames.ora中的數據源
再補上過程登錄名稱和密碼就可用了
------解决方案--------------------一般裝完Oracle客戶端後在C:\oracle\ora92\network\admin\Tnsnames.ora
格式如下(其中ERPSERVER就是數據源):
ERPSERVER=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.11.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = erp)
(SERVER = DEDICATED)
)
)
------解决方案--------------------用 replication 吧, 这个保险一些
触发器不够稳定, 而且如果插入失败还影响产生些触发的业务
而 replication 坏掉只影响同步, 修复或者重建 replication 都可以解决问题
------解决方案--------------------replication是用在存储过程中的么?
--------------------------------------
复制/订阅, 这个是用配置的, 不是用存储过程的(当然, 如果你喜欢调用存储过程去完成配置, 那也行, 只是太复杂了一点)
------解决方案--------------------具体实现 2000 和 2005 有所不同, 建议先看看联机帮助, 了解一下相关的背景, 同时也了解一下配置
------解决方案--------------------sql下建,
前提是oracle客戶端能連得通行(你用 SQL PLUS 看能不能連),鏈服務器才能建好!
------解决方案--------------------以为楼主用的是 2005 呢
2000对oracle的复制/订阅似乎支持得并不怎么样