Oracle库中有表A
SQL SERVER 2000 库中有表B,C
C表存放每次导入的数据的max(id)号
欲将表A导入到表B(A,B两表的结构相同),每次导入:
select * from a where id > c.id
我在包设计中
1\使用"动态属性任务"先把C.id值取到全局变量
2\在转换数据任务中的源中使用SQL查询 select * from a where id > ?
然后点击"参数.."按钮,接错
HResult of 0x80040e51 (-2147217839) returned
出现意外错误.返回了错误结果,但没有错误信息.
同样的情况,但是我改成从MSsql数据库导到MSsql数据库,都不报错,也能正常使用参数,
为什么从Oracle数据库导到Mssql数据库就不行了,是不支持这样,还是说我哪里写错了.
------------------------------------------------
也想过别的办法来导数据,比如用链接服务器
EXEC sp_addlinkedserver 'OracleServer', 'Oracle', 'MSDAORA', 'dali'
go
EXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'system', 'manager1'
go
select * from OPENQUERY(oracleserver, 'SELECT * FROM 表A') a where id >(select max(id) from 表C)
但问题是我在Oracle数据库中表A相当大(几千万条记录),使用以上语句根本出来不结果.
Oracl数据库我只有访问权,没办法做什么配置及更改.
而OpenQuery 又不支持变量参数.我该 怎么办.
哪位高手来分析一下这两种操作的解决方法??在线等啦,比较急!谢谢>
------解决方案--------------------
配置透明网关的步骤
前一段花了些时间配置 TRANSPARENT GATEWAY
现在把心得贴出来与大家共享
我的OS是WIN2000
ORACLE 9.0
SQLSERVER2000
HOSTNAME : SVR1
都使用 tcp/ip 默认端口
1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql
2: 配置 LISTENER.ORA
(SID_DESC =
(GLOBAL_DBNAME = tg4sql) # 可自己命名
(PROGRAM = tg4msql)
(SID_NAME = sql2000) # SID 自己命名
(ORACLE_HOME = D:\oracle\ora90)
)
3: 在 oracle_home\ora90\tg4msql\admin
建文件 init<SID>.ora 由于LISTENER里定义SID为 sql2000
因此文件名为:initsql2000.ora
其中内容为:
HS_FDS_CONNECT_INFO=svr1.master # svr1为SQL服务器名
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
4: 重启 DATABASE AND LISTENER
5: 配置 tnsnames.ora
tg_sql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SVR1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sql2000)
)
(HS=OK)
)
6: 建立 DATABASE LINK
CREATE PUBLIC DATABASE LINK DB_SQL
CONNECT TO SA IDENTIFIED BY PASSWORD
USING 'tg_sql'
7: 完成,测试
select * from [email protected]_sql
8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
如果为 FALSE, 不必使用全称,当出现
“ORA-02019:为找到远程数据库的连接说明”
时,请使用全称,如:
select * from [email protected]_sql.US.ORACLE.COM
------解决方案--------------------
学习
------解决方案--------------------