SQL Server 2005下的,Integration Services Project项目中(即SSIS),拉了一个Data Flow Task,双击进去,拉了2个控件,一个是OLE DB Source 一个是OLE DB Destination。在对OLE DB Source进行数据库源配置时,提示了一个警告,信息如下:Validation error. Data Flow Task: OLE DB Destination[916]: The column "CITY" cannot be processed because more than one code page (936 and 1252) are sepcified for it.我知道把这个Source的属性里的AlwaysUseDefaultCodePage属性由默认的False改成True后,这个警告会没掉。
但是在配置Destination时,却跳出了15个类似的这个错误,(列名不同,其他的信息一样),我第一次做的时候,Source的警告信息我不理它,然后做目标数据时,并不提示错误的。
我这个SSIS的数据转换是从Oracle数据库(Source)里读数据到SQL Server数据库(Destination)里。
谁给个解决这个问题的方向,或者谁能帮忙解决,更是感谢。
我在网络上查到的信息有
936是简体中文,1252是美国英语,所以我怀疑是编码的问题,但是这个信息我查到的都是做ASP的朋友发的帖子的。和这个sql server里的是不是说一个事情,我不清楚。而且我有这个编码怀疑,但是去哪查看现在的编码和修改编码我不知道。
但是在配置Destination时,却跳出了15个类似的这个错误,(列名不同,其他的信息一样),我第一次做的时候,Source的警告信息我不理它,然后做目标数据时,并不提示错误的。
我这个SSIS的数据转换是从Oracle数据库(Source)里读数据到SQL Server数据库(Destination)里。
谁给个解决这个问题的方向,或者谁能帮忙解决,更是感谢。
我在网络上查到的信息有
936是简体中文,1252是美国英语,所以我怀疑是编码的问题,但是这个信息我查到的都是做ASP的朋友发的帖子的。和这个sql server里的是不是说一个事情,我不清楚。而且我有这个编码怀疑,但是去哪查看现在的编码和修改编码我不知道。
解决方案 »
- 菜鸟请教:关于数据库备份的问题,请指点一下!!!
- 存储过程终止语句执行的问题
- 求一个SQL存储过程。
- 批量操作中间出错问题
- 再问:如何做同义查询呢?如查询福建,则出现闽的也搜索出来.
- 如何判断游标已指向最后一条记录?
- 在SQL Server中的用Openrowset()导入导出的问题
- 关于数据库复制向导的问题(在线等候答对马上给分)
- 老大救命。光盘上的数据库问题(up有分)
- 还原数据库时媒体簇结构不正确
- sql server 一个字段拆分成多个字段显示
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许
SQL和ORACLE之间的数据查询配置透明网关的步骤
前一段花了些时间配置 TRANSPARENT GATEWAY
现在把心得贴出来与大家共享我的OS是WIN2000
ORACLE 9.0
SQLSERVER2000
HOSTNAME : SVR1
都使用 tcp/ip 默认端口
1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql2: 配置 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=RECOVER4: 重启 DATABASE AND LISTENER5: 配置 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 t_test@db_sql8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
如果为 FALSE, 不必使用全称,当出现
“ORA-02019:为找到远程数据库的连接说明”
时,请使用全称,如:
select * from t_test@db_sql.US.ORACLE.COM
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,注意:用户名和表名一定要大小,服务器和用户名之间是两个点;
例如:
select top 10 * from opendatasource('MSDAORA', 'Data Source=HZTEST;User ID=osstest;Password=a1234')..OSSTEST.SUBSCRIBER本地Oracle客户端配置文件中内容如下:
HZTEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.149.7.19)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test)
)
)2. 使用MS SQL的openrowset函数
select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A
order by A.ID
使用这种方式一定要用别名才行3.使用ODBC方式
select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
XST4_ODBC是ODBC数据源4.使用链接服务器方式
EXEC SP_ADDLINKEDSERVER
@server='mylinkedserver', --链接服务器名称
@srvproduct='Oracle', --固定
@provider='MSDAORA', --固定
@datasrc='XST4' --Oracle本地服务名
该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=17285
就3楼的 CN_SQL 的回帖有点用处。
估计你的数据的Collation为Chinese_PRC_CI_AS或则Chinese_PRC_CI_AI--查看数据库Testshen下Collation的属性
SELECT DATABASEPROPERTYEX('Testshen', 'Collation') --Chinese_PRC_CI_AS
--查看Collation和Codepage的对应关系
SELECT NAME FROM ::fn_helpcollations() WHERE COLLATIONPROPERTY(NAME,'CodePage')=936--结果如下:
Chinese_PRC_BIN
--Chinese_PRC_BIN2
--Chinese_PRC_CI_AI
--Chinese_PRC_CI_AI_WS
--Chinese_PRC_CI_AI_KS
--Chinese_PRC_CI_AI_KS_WS
--Chinese_PRC_CI_AS
--Chinese_PRC_CI_AS_WS
--Chinese_PRC_CI_AS_KS
--Chinese_PRC_CI_AS_KS_WS
--Chinese_PRC_CS_AI
--Chinese_PRC_CS_AI_WS
--Chinese_PRC_CS_AI_KS
--Chinese_PRC_CS_AI_KS_WS
--Chinese_PRC_CS_AS
--Chinese_PRC_CS_AS_WS
--Chinese_PRC_CS_AS_KS
--Chinese_PRC_CS_AS_KS_WS
--Chinese_PRC_90_BIN
--Chinese_PRC_90_BIN2
--Chinese_PRC_90_CI_AI
--Chinese_PRC_90_CI_AI_WS
--Chinese_PRC_90_CI_AI_KS
--Chinese_PRC_90_CI_AI_KS_WS
--Chinese_PRC_90_CI_AS
--Chinese_PRC_90_CI_AS_WS
--Chinese_PRC_90_CI_AS_KS
--Chinese_PRC_90_CI_AS_KS_WS
--Chinese_PRC_90_CS_AI
--Chinese_PRC_90_CS_AI_WS
--Chinese_PRC_90_CS_AI_KS
--Chinese_PRC_90_CS_AI_KS_WS
--Chinese_PRC_90_CS_AS
--Chinese_PRC_90_CS_AS_WS
--Chinese_PRC_90_CS_AS_KS
--Chinese_PRC_90_CS_AS_KS_WS
--Chinese_PRC_Stroke_BIN
--Chinese_PRC_Stroke_BIN2
--Chinese_PRC_Stroke_CI_AI
--Chinese_PRC_Stroke_CI_AI_WS
--Chinese_PRC_Stroke_CI_AI_KS
--Chinese_PRC_Stroke_CI_AI_KS_WS
--Chinese_PRC_Stroke_CI_AS
--Chinese_PRC_Stroke_CI_AS_WS
--Chinese_PRC_Stroke_CI_AS_KS
--Chinese_PRC_Stroke_CI_AS_KS_WS
--Chinese_PRC_Stroke_CS_AI
--Chinese_PRC_Stroke_CS_AI_WS
--Chinese_PRC_Stroke_CS_AI_KS
--Chinese_PRC_Stroke_CS_AI_KS_WS
--Chinese_PRC_Stroke_CS_AS
--Chinese_PRC_Stroke_CS_AS_WS
--Chinese_PRC_Stroke_CS_AS_KS
--Chinese_PRC_Stroke_CS_AS_KS_WS
--Chinese_PRC_Stroke_90_BIN
--Chinese_PRC_Stroke_90_BIN2
--Chinese_PRC_Stroke_90_CI_AI
--Chinese_PRC_Stroke_90_CI_AI_WS
--Chinese_PRC_Stroke_90_CI_AI_KS
--Chinese_PRC_Stroke_90_CI_AI_KS_WS
--Chinese_PRC_Stroke_90_CI_AS
--Chinese_PRC_Stroke_90_CI_AS_WS
--Chinese_PRC_Stroke_90_CI_AS_KS
--Chinese_PRC_Stroke_90_CI_AS_KS_WS
--Chinese_PRC_Stroke_90_CS_AI
--Chinese_PRC_Stroke_90_CS_AI_WS
--Chinese_PRC_Stroke_90_CS_AI_KS
--Chinese_PRC_Stroke_90_CS_AI_KS_WS
--Chinese_PRC_Stroke_90_CS_AS
--Chinese_PRC_Stroke_90_CS_AS_WS
--Chinese_PRC_Stroke_90_CS_AS_KS
--Chinese_PRC_Stroke_90_CS_AS_KS_WS建议你将你的OLE DB Destination组件的AlwaysUseDefaultCodePage属性由False改为True