wincc自带sql server2005数据库,如何实现该数据库和另一oracle数据库的通讯?
wincc自带的sqlserver2005数据库中是按照每天1600——第二天1559为时间间隔产生一个数据库,表中只存那一天时间内的数据。现在我需要实现和另一oracl...
wincc自带的sql server2005数据库中是按照每天1600——第二天1559为时间间隔产生一个数据库,表中只存那一天时间内的数据。现在我需要实现和另一oracle数据库的通讯,每天oracle从sql server对应时间的数据库表中取值,该如何实现呢?
sql server数据库中为以下样式:
xxxxx201403171600xx201403181559xxxx
xxxxx201403181600xx201403191559xxxx
xxxxx201403191600xx201403201559xxxx
................ 展开
sql server数据库中为以下样式:
xxxxx201403171600xx201403181559xxxx
xxxxx201403181600xx201403191559xxxx
xxxxx201403191600xx201403201559xxxx
................ 展开
展开全部
写一个服务方式的程序,作为服务主流服务器上,定时读-写就可以,用SQL语句比较难,参考下文:
一:sqlserver连接oracle
1.配置windows的ODBC数据源:
开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:
添加—》选择Microsoft ODBC for oracle—》自定义数据源名称(最好跟tns中连接串同名!)—》服务器名称
(必填!填写tns文件中的连接串名称)—》完成。
2.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;
选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填;
数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd
(或者按如下格式:UID=username;PWD=userpasswd),
这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:
设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。
3.完成了。使用方法
在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,
即可在右边窗口看到该oracle数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!
访问表时,使用格式为: [连接服务器名]..[ORACLE用户].[表名]。必须为大写。更详细具体的使用这里不再赘述。
------------------------------------------------------------------------------------------
二:oracle连接sqlserver
1、安转透明网关
在自定义安转内
D:\oracle\ora92\tg4msql\admin\inittg4msql.ora tg4msql
2、在D:\oracle\ora92\network\admin\listener.ora内添加
(SID_DESC =
(GLOBAL_DBNAME = tg4msql)
(PROGRAM = tg4msql)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = tg4msql)
)
3、配置tns
tnsnames.ora
-----------------
例子1
cdma =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhyg)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tg4msql)
(SERVER = DEDICATED)
)
(HS=OK)
)
例子2
du =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sha38)(PORT = 1521))
)
(CONNECT_DATA =
(SID = jf)
(SERVER = DEDICATED)
)
(HS=OK)
)
--------
3、创建数据链路
CREATE PUBLIC DATABASE LINK DU CONNECT TO SA IDENTIFIED BY SA USING 'DU'
ok可以使用了
select * from sysobjects@cdma
一:sqlserver连接oracle
1.配置windows的ODBC数据源:
开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:
添加—》选择Microsoft ODBC for oracle—》自定义数据源名称(最好跟tns中连接串同名!)—》服务器名称
(必填!填写tns文件中的连接串名称)—》完成。
2.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;
选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填;
数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd
(或者按如下格式:UID=username;PWD=userpasswd),
这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:
设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。
3.完成了。使用方法
在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,
即可在右边窗口看到该oracle数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!
访问表时,使用格式为: [连接服务器名]..[ORACLE用户].[表名]。必须为大写。更详细具体的使用这里不再赘述。
------------------------------------------------------------------------------------------
二:oracle连接sqlserver
1、安转透明网关
在自定义安转内
D:\oracle\ora92\tg4msql\admin\inittg4msql.ora tg4msql
2、在D:\oracle\ora92\network\admin\listener.ora内添加
(SID_DESC =
(GLOBAL_DBNAME = tg4msql)
(PROGRAM = tg4msql)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = tg4msql)
)
3、配置tns
tnsnames.ora
-----------------
例子1
cdma =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhyg)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tg4msql)
(SERVER = DEDICATED)
)
(HS=OK)
)
例子2
du =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sha38)(PORT = 1521))
)
(CONNECT_DATA =
(SID = jf)
(SERVER = DEDICATED)
)
(HS=OK)
)
--------
3、创建数据链路
CREATE PUBLIC DATABASE LINK DU CONNECT TO SA IDENTIFIED BY SA USING 'DU'
ok可以使用了
select * from sysobjects@cdma
追问
可是sql server中它是按照每天的时间段自动生成的一个数据库,我怎么才能设置到按照每天不同的时间段去取数呢?
追答
自己写一个程序来实现,其他办法会影响已有的设置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询