如何实现异构数据库的连接(详情见内,急用!)

hjyhb 2003-08-25 10:06:33
我用的是sybase数据库,其中有张表的数据需要插入到oracal数据库的一张表中,这两个数据库也不在一个服务器上,这两张表中的数据不需要同步,时间上可以有延迟。不知道有什么工具可以实现,或者单纯用语言实现,那更好不过了!谢谢大家不吝赐教!
...全文
71 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjyhb 2003-09-12
  • 打赏
  • 举报
回复
可我面对全是这种unix终端,在大学还会经常搞一搞的视窗编程也懒得玩了,现在也忘的差不多了,悲啊~~~~~~~~~~~~~~~~~
cuizu 2003-09-10
  • 打赏
  • 举报
回复
shell用得不多。在nt上只能用工具开发了,做个定时器什么的。
shiufurong007 2003-09-09
  • 打赏
  • 举报
回复
up
zyhlhx 2003-09-09
  • 打赏
  • 举报
回复
shell 的功能好强大呀!
不知道楼主能否将代码贴出来?
hjyhb 2003-09-09
  • 打赏
  • 举报
回复
我是搂主。关于这个问题,我现在已经解决了!
在这里为了感谢大家的积极参与!我特地把我的拙劣方案共享一下。
我用的是IBM AIX433的系统,这台机器上装有sybase数据库,我称为A;
还有一台IBM 的unix机器上装有的是oracle数据库。这台机器称为B;
而我的目的是从机器A的sybase数据库中有一张表的部分数据需要传送到
B机器的oracle数据库一张表的部分字段中,当然这两张表不需要实时同步。

鉴于上述特性,
首先:我在A机器上装了一个oracle客户端,把远程地址和开放端口全部配好,保证能从
A机器上的oracle客户端联上B机器上的oracle数据库
然后接下来就简单了,就是做一个shell程序,我采用的是K shell,加了点awk编程:我把A机器上的那张表的数据提出有用的字段bcp到一个文件里,然后从文件里循环读取数据,从oracle客户端连接到B机器上,就这样数据传送过去了(当然其间涉及到sql编程,都是很简单的sql语句而已)。

然后把这个shell程序挂在crontab下面,一个小时执行两次。

其实把这个东西做出来很快,就是定方案用了蛮久的,方案一确定,一天的时间就能搞定!

这是我第一次在技术论坛发贴子求助,得到这么多人的响应!所以很感谢大家,特把我的方案和思路
与大家共享,欢迎不吝赐教!
hjyhb 2003-09-09
  • 打赏
  • 举报
回复
faint faint
zyhlhx 2003-09-09
  • 打赏
  • 举报
回复
to (hjyhb):
真的认识我?
可以 上msn 呀
hjyhb 2003-09-09
  • 打赏
  • 举报
回复
to zyhlhx(踏雪无痕) :shell功能是很强大,但我的只是皮毛而已,我是不是认识你呢??
ufogy 2003-08-27
  • 打赏
  • 举报
回复
我用8.1.7连接SQL SERVER 2000
我是这样做的:
1、安装 Microsoft Data Access Components (MDAC)SDK ODBC driver
2、建立 SQL SERVER 数据源
test连接上我的test数据库
3、配置tnsnames.ora. (ORACLE_HOME\NETWORK\ADMIN)
test=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=<IP地址>)
(PORT=1521)
)
(CONNECT_DATA=
(SID=test)
)
(HS=)
)
4、配置listener.ora. (ORACLE_HOME\NETWORK\ADMIN)
(SID_DESC=
(SID_NAME=test)
(ORACLE_HOME=c:\Oracle\iSuites)
(PROGRAM=hsodbc)
)
5、重启ORACLE监听.
CMD
LSNRCTL STOP
LSNRCTL START
LSNRCTL STATUS
6、添加网关配置文件. (ORACLE_HOME\HS\ADMIN)
文件名为:inittest.ora
文件内容:
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = test
HS_FDS_TRACE_LEVEL = 0
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
7、进入ORACLE SQL*PLUS,建立数据库链.
CREATE DATABASE LINK TOSQL USING 'test';
8、测试
SELECT * FROM TABLE1@TOSQL;
SELECT * FROM TABLE1@TOSQL
ufogy 2003-08-27
  • 打赏
  • 举报
回复
open gatewqy j是oracle的一价目产口味,和developer/2000类似,是其附列产吕,用于数据义换,鼍
hjyhb 2003-08-26
  • 打赏
  • 举报
回复
楼上的说open gateway
是什么东西啊?
是不是oracle的客户端啊?
敬请赐教!
ufogy 2003-08-26
  • 打赏
  • 举报
回复
我也有类似的问题,在oracle的产品里有个叫open gateway 的产品,应可实现
hjyhb 2003-08-26
  • 打赏
  • 举报
回复
好的
谢谢楼上的兄弟
我去网站试着弄一弄
hjyhb 2003-08-25
  • 打赏
  • 举报
回复
只能用shell或c编程实现(都在unix环境下面)
我只做过sybase数据库之间的数据传送编程,但是从sybase倒oracle客户端的接口不太清楚。
zyhlhx 2003-08-25
  • 打赏
  • 举报
回复
你们用什么编程序?c ? db-library ?
还是用 vb pb delphi 这些东东?
hjyhb 2003-08-25
  • 打赏
  • 举报
回复
我们决定还是使用oracal客户端的方法,但是怎样实现从sybase到orcale客户端的数据传送,能不能具体一点呢,因为我们的服务器都是采用IBM的unix系统,第一次做这种编程,一时半会,不好下手啊。
zyhlhx 2003-08-25
  • 打赏
  • 举报
回复
将两个数据库连接起来访问可能需要额外的软件。你可以在程序中先从 sybase 取数据
再写到 oracle 这样可能比较简单
hjyhb 2003-08-25
  • 打赏
  • 举报
回复
谢谢楼上的两位!
那么既然采用安装oracle客户端的方法,那么怎么实现本地sybase到oracle客户端的数据传送呢?
zyhlhx 2003-08-25
  • 打赏
  • 举报
回复
可以直接安装 oracle 的客户端,直接向 oracle 中插数据,就象 sybase 不存在一样呀
hjyhb 2003-08-25
  • 打赏
  • 举报
回复
我听别人说,在sybase端装一个oracal客户端,就可以通过这个客户端和别的服务器上的oracal数据库进行数据传送?不知道可不可行呢?
加载更多回复(3)

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧