ssis连接oracle表抽取数据字段类型不一致问题 5C

今天遇到个很奇怪的问题,我把ssis的项目迁移到新服务器后,发现连接oracle数据源之后,获取到的字段类型都跟原来环境中的不一样了。oracle端的字段都是varchar2的,还有number的,在新环境中通过ssis连接上后输出的列类型都变成Unicode字符串了;但是原本旧环境中就没问题,varchar2取过来是varchar字符串,number取过来是float数值型。
不知道有没有人了解这个问题,是什么原因导致呢?如果不能恢复,那所有表都可能要手动加转换了。。。

图片说明
图片说明

0

4个回答

1
liuxiang860927
lxljw1314 非常感谢,我sqlserver是2008R2的版本,所以之前连接oracle也装了microsoft connector for oracle by attninuty ,之前都是正常的,就突然连接oracle就这样了,原因未知。。。
大约一年之前 回复

工具解析的问题 换一个工具就可以了

1

这个问题有些奇怪,按理说不应该有啊

0

你的图片挂了,是不是中英文的问题

0
liuxiang860927
lxljw1314 我的sqlserver一直都是默认安装的,编码936,没改过语言什么的,但是oracle那边的数据库倒是升级过,不知道跟这个有没有影响;但是老的ssis包对接oracle出来的字段就是varchar,没有Unicode
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
通过SSIS设计ETL来将Oracle/DB2/Sybase等数据源的数据定期导入到数据仓库(一)
方法其实不止一种,我介绍一种使用DataReader数据源的方法。 最基本的前提是,在执行SSIS的服务器上需要有安装相应数据源的Provider,比如你需要从Oracle8.1的数据库中导入数据,那么在SSIS服务器上就要安装Oracle8.1的驱动,或者安装一个Oracle8.1的客户端。 第一步:定义变量,建议定义为DateTime类型,作用域为整个包。(不知为何不让我上
SSIS操作MSSQL的千万级数据导入到Oracle数据库
前提:服务器配置8G内存,安装Oralce 11G数据库,MSSQL2008 R2数据库(服务没启动) 客户机配置8G内存,安装MSSQL2008 R2数据库,数据从客户机导入到服务器。SSIS在服务器上面运行 问题:将MSSQL的历史表与当前表数据导入到Oracle数据库,数据量大于1千万 注: 1.历史表与当前表的主键ID(代理键)可能重复 2..Oracle是用序列生成主键ID(代
浅谈SSIS的增量抽取
ETL在BI项目中占据十分重要的位置,一般会占到整个工作量的80%,现在ETL增量方式大概有三种:同步日志,时间戳,读取时间段。首先客户大多数的业务数据库都是ORACLE,如果同步日志的话ORACLE必须开归档模式,日志是不准的。时间戳是个比较好的方法,但是你必须在客户的业务数据库里增加字段,为了加快访问速度,还必须建立索引,甲方一般都不能接受,他们不想影响他们的生产系统。SSIS
oracle 在做 自然连接时候 字段类型不一样 报错
oracle 在做 自然连接时候 字段类型不一样 报错昨天在连接两张表时候 由于要连接的两个字段类型不一样,导致了invalid number错误。sql如下: select c.* from cms_node_main a,cms_resource_properties b,cms_news_properties c where a.NODET_ID = b.NODE_ID
SSIS探索之SSIS增量抽取数据
背景: 在工作中,我想对业务系统的日志信息进行分析,需要将日志信息抽取到另外一个表里,由于日志表的数据量庞大,我只需要从某一特定时间开始对业务系统产生的日志抽取出来,而且需要每5分钟(假定)进行抽取一次,把在这5分钟内产生的日志信息抽到我的表里面,产生一个增量抽取的效果。
SSIS(简单数据抽取过程介绍)
 SSIS(简单数据抽取过程介绍)        数据的导出涉及到数据转换的概念。企业中的数据并不是以统一的格式存储的。比如:有SQL、access、oracle、excel,这些存储形式的格式都是不一样的,但是我们可以利用SSIS包设计器来对这些不同格式的文件之间进行转换,以便更加灵活地使用企业的数据。 为什么要进行数据转换?        当我们希望将数据从一个服务器移动到另一个服
成功部署SSIS中含有Oracle数据库连接的ETL包
在百度搜出来的内地博客技术文章(CSDN、ITEYE、CNBLOGS……),大部分都是不全面,只针对一个遇到的问题点的记录,可以说毫无参考价值,甚至会把你指向错误的方向。   为什么?因为无当时系统环境交待,工具版本信息,其它客观因素(非原生,有插件等等)。但是搞技术的都知道,这些因素非常重要。   但我们再看看台湾 dotblogs 上的文章(百度偶尔抽风,给点tw的结果
工作——SSIS数据抽取中使用到的SQL server语句
1.表中有自增字段xh select max(xh) from tablename update tablename set memo='%s' where xh='%s' 2.表中有不自增的主键id delete from tablename where id='%s' select 999999999 as 'id' 3.SQL server里面会用到的语句 CDC数据抽取模式:
在SSIS 2012中使用CDC(数据变更捕获)
最新项目稍有空隙,开始研究SQL Server 2012和2014的一些BI特性,参照(Matt)的一个示例,我们开始体验SSIS中的CDC(Change Data Capture,变更数据捕获)。 注:如果需要了解关于SQL Server 2008中的CDC,请看这里http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html“),本文假定读者对CDC的工作方式已有所了解。^_^。
SSIS连接Oracle遇到的问题
Fuck!一大早上来到办公室发现 E盘被客户无缘无故干掉了,心中一万只......路过,but  接下来还是要解决问题 冷静!冷静!冷静! 问题还是要解决的 于是乎去测试开发环境 发现DW库和Report应用OK,因为连的是本地Sqlserver,还好没被干掉(PS:因为我没备份啊) 再次来到SSIS界面 直接 × ×  × 红色的大叉叉摆在我面前,知道出问题了,再仔细一看提示“SSIS
SQLServer利用SSIS包定时同步新增数据到其它库
SQLServer利用SSIS包定时同步新增数据到其它库,全图形化操作,规避各种非常深入的数据库概念,适合新手入门
oracle数据库中,字段类型不一致,导致查询慢
最近一个WEBSERVICE突然变慢了,后查询发现,后台查询也非常慢(记录条数800多万),索引也有,如下语句 SELECT P.ID,P.RECORD_ID,P.KEY_NAME,P.KEY_CONTENT                      FROM MED_EMR_PATIENT_RECORD R,MED_EMR_RECORD_EXTRACTINFO P        
sqlserver中SSIS的使用(oracle数据传输到sqlserver)及java调用
1.安装sqlserver2008后,网上搜索相关资料了解到SSIS需要运行SQL Server Data Tools,但是在ss2008中却找不到这个东西。后来一一点击尝试,发现ss2008中叫SQL Server Business Intelligence Development Studio。(应该是版本差异导致的)2.可以正常启动后,参照 (https://blog.csdn.net/ch...
SQL关联查询关联字段数据类型不一致导致耗时过长
SQL关联查询消耗662ms select count(*) from p_video_circle_relation a left join p_video_info b on a.video_id = b.work_id where a.circle_id = 212307047; 最先想到的是表没有创建索引 mysql> desc p_video_circle_r...
sql语句中的字段类型与sql表字段类型不一致可能引起的性能问题
今天在公司上班期间,发现一个很奇怪的问题。就是sql表中如果字段类型为字符串类型,而我们在写sql语句的时候用的确实整型的时候。在性能上会出现问题。接下来我们来看测试表结构如下:CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID', `order_num` varchar(256) COLLATE
SSIS包中 注意 数据类型须一致
在SSIS包中,源数据与目标数据中每一列的数据类型都要严格的一致, 如:工号 varchar(20) 与 工号 nvarchar(20) 这样的数据类型是不一致的,在执行此SSIS包的时候就会报错。
SSIS实现与SAP数据整合
[BTS]SSIS实现与SAP数据整合. 使用SSIS整合SAP数据 1.准备 业务需求:将SAP中的公司代码表,同步到OA中的公司代码表。 技术方案:使用SSIS,实现数据整合。 技术准备:安装Microsoft .NET Data Provider for mySAP Businese Suite 2.实施 整体执行步骤
SSIS 连接ORACLE 无法从 SQL 命令中提取参数的解决方案
第一步:  定义包变量:maxdate 类型为String  定义包变量:sqlStatement类型为String,值为:select * from i_out_serv_mon 第二步:  取"执行SQL任务"组件,设置SQLStatement为:  select to_char(max(scn_time),'YYYY/MM/DD HH:MI:SS') md from i_out_data_s...
SqlServer ETL 数据抽取工具SSIS之环境搭建
SSIS 是Microsoft SQL Server integration Servers 的简称,是数据集成的解决方案,它包含数据提取,加工,加载等为一体的平台。 SQL Server Integration Services (SSIS) 提供一系列支持业务应用程序开发的内置任务、容器、转换和数据适配器。您无需编写一行代码,就可以创建 SSIS 解决方案来使用 ETL 和商业智能解决复杂的业务问题,管理 SQL Server 数据库以及在 SQL Server 实例之间复制 SQL Server 对象
SSIS 执行变量中的脚步输出列顺序与SQL查询列顺序不同
这个问题是朋友遇到的,做一个SSIS的程序将数据导入到txt。然后再用Oracle的工具导入到Oracle。但是在SSIS中执行变量脚步的时候,发现输出的列名称跟查询的列名称完全不同。   如图:       因为txt的格式已经定义好了,而且解析的程序也已经做好,所以如果txt列顺序有问题就会影响到后面的操作。查了一下好像没有地方可以调整输出量的顺序。   当然这个问题可以通过调
一篇不错的SSIS性能很慢的分析
http://stackoverflow.com/questions/16181921/dataflow-task-in-ssis-is-very-slow-as-compared-to-writing-the-sql-query-in-execu
SSIS学习(四) - SSIS+CDC 增量抽取数据
前三节主要是入门和单独使用,本章重点SSIS结合CDC做数据增量抽取(insert,update,delete) 一 在开启表的CDC基础上,建立cdc记录表用于每次增量的记录
hive sql join 时字段类型不一致问题
在用hive sql 查询数据时会遇到 两个表通过字段join,假如两个字段类型不一样,有可能出现莫名其妙的结果。 解决方法: 将2个字段类型转成一样。比如 两个表通过id关联, 一个是 string 一个是 int,可以将 string 转成int  eg: (cast id as int) as id
mysql两表关联但是关联字段类型不一致
今天做项目时发现了一个问题,业务表与字典表关联,发现查询出的结果有重复值,如下图所示: 首先,我们先看下业务表数据,就一条记录,如下图: 再看下字典表数据,如下图: 两表关联,查询结果如下: 从中发现,数据有问题,并不是我想要的结果,再仔细查看了下sql,发现语句也没问题,一直百思不得其解,突然想到是不是两者的字段类型不同,查了下两者
SSIS【For 循环容器】(循环输出数值)
For 循环的用法不可缺少就3个条件:初始值,增长最大值,递增值。 1. 设计控制流如下:【脚本任务】放到【For 循环容器】里面 2.  新建一个整型变量 3. 设置【For 循环容器】: InitExpression :提供初始化该循环所用值的表达式(可选)。 EvalExpression :提供用于计算循环应停止还是继续的表达式。 Assi
SSIS循环抽取Excel文件
解决问题描述: 循环导入指定文件夹下的Excel,通过过滤指定列不为空的数据,将结果放入数据库中,导入成功的文件放入成功文件夹中,失败的文件放入失败文件夹中 (每一步都测试,并经常关闭开启) 1:创建包   2:在控制流界面添加Foreach 循环容器    3:处理Foreach循环容器 双击Foreach 在文件夹位置存放需要循环的文件路径,将文件位置放文件后缀型   3
BI SSIS应用系列之循环导入Excel文件
SSIS大多用来做数据扭转,所以必须有数据源和数据目标。上一章我们讲了最基本的数据导入,其实也是最基本的数据源到数据目标的过程。下面我们看看如何用SSIS循环导入Excel文件。         第一步:在控制流中添加【Foreach 循环容器】控件,并设置相关属性,属性设置见下图:                           循环过程中必须有一个变量来接收文件路径,我们不用关心
SSIS 中处理中文乱码
以下内容转自:http://www.blogjava.net/rocky/archive/2005/11/10/19072.html     OLE DB Source是sql 2000 中文版本,数据库编码为默认中文 OLE DB Destination是oracle 9i ,操作系统为redhat linux as 4,数据库编码是utf-8,使用yukon自带的oracle ole...
Informatica同步数据到ORACLE库需要注意的几个问题
  1、有关日期时间类型映射       源SQL SERVER 目标Oracle Date Date DateTime Date或者Timestamp(建议Timestamp) Timestamp Timestamp   2、有关varchar和clob类型       因为oracle数据库中字符串类型不允许有空字符串,即'',...
odi 11- Blob字段报ORA-00932 数据类型不一致: 应为 -, 但却获得 BLOB 解决方法
感谢外国友人的帖子,我在一老外回帖中看到一句话, " you need to use the IKM (PL/SLQ) to solve it... "  恍然大悟,忘记IKM 的问题,  核心是sql的问题。   立刻在‘流’面板,把点击选择临时区域,选择IKM选择为: IKM Oracle ..(PL sql) 执行,Success ,发现ODI资料还是比较少,不能不古哥一下,https
oracle 的union和union all操作,查询不同表之间的数据类型匹配
为了从数据库导出数据直接生成excel表,为了客户对比数据使用,根据条件查找并去重等众多艰难险阻,不断百度和查看大量操作方式和实验得出这么几条经验,拿出来给大家分享一下,如果有哪里不对或者探讨请联系我,在此谢过! Union(union all): 指令的目的是将两个 SQL 语句的结果集合并起来,得到你所需要的查询结果。   网上对这两者之间的一个总结:         Union:对两个...
ssis数据增量抽取
在ssis里如何做到多数据源、增量抽取  测试环境:两个excel 数据源 A: ID,NAME  B:ID,DANWEi ,一个oledb数据源 tt:id,name,danwei目的:将两个数据源连接以后,写入oldeb数据源tt 新建ssis项目,会自动生成ssis包,把【数据流任务】从工具箱中拖入控制流中,双击【数据流任务】,进入【数据流】,从工具箱拖入两个【exc
从mysql抽取数据到hive遇到的问题
数据迁移最大的影响是数据类型的不同导致数据不匹配,比如文本mysql中为text,到了hive就变成string,hive中int类型的都不带长度 重点是时间类型的转换 mysql中datetime类型的数据是这样的, hive中需要用timestamp来进行转换 mysql中date类型hive中也用date类型来匹配数据类型, 作者在hive中用tim...
Window7 x64环境下 SSIS无法通过Oracle 64位建立连接
背景,现在在做电厂的一个BI项目,电厂的数据源是Oracle 11g。 我本机是windows7x64系统,安装 Oracle 11g  client x64, Sql  Sever 2008 R2 x64. 在通过SSIS连接Oracle 服务器时发现无法连接, 错误:需要安装更高的7.3版本。。。。。内容记不太清楚了。 百度 谷歌了一天,没有任何办法,网上说的什么OracleHom
SSIS数据定时同步方案
第一次接触到SSIS,借此机会学习一下。 SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台。 下面我们来说一下SSIS进行数据同步的步骤: 1.打开Visual Studio,这个Visual Studio是SQL Server根目录下面的(SQL Ser...
Oracle-不删表数据,修改字段类型
/*修改原字段名name为name_tmp*/ alter table VD_VEH_USE_APPLY_INFO rename column VEH_USER_JOB to VEH_USER_JOB_tmp; /*增加一个和原字段名同名的字段name*/ alter table VD_VEH_USE_APPLY_INFO add VEH_USER_JOB varchar2(10
SSIS_数据流转换(Union All&合并联接&合并)
Union All : 与sql语言 Union All 一样,不用排序,上下合并多个表。Union All转换 替代合并转换:输入输出无需排序,合并超过两个表 合并联接 : 有左连接、内连接、完全连接,只能关联两个表,连接前先排序。 合并 : 与sql语言 Union 一样,合并前先排序,上下合并两个表 在数据库中创建一个表。并创建3个TXT文件,分别用于保存结果。 姓名
union查询2个表的2个不同类型的字段
select to_char(a.name) name_a from a union select to_char(b.name) name_b from b   强行转换2个字段的类型为char型,在查询的结果集中就可以正常显示这2个结果了     另: union 去掉重复 union all 不去掉重复...
解决SSIS连接ODBC数据源时“无法从运行时连接管理器获取托管连接”的问题
1.解决SSIS连接ODBC数据源时“无法从运行时连接管理器获取托管连接”的问题      最近尝试采用sqlserver2005 integrate services来做异构数据库之间的数据抽取,使用ODBC连接的Teradata作为数据源。参照《SQL Server 2005数据库开发详解》(电子工业出版社 胡百敬 姚巧玫)P361-363,在SSIS中操作步骤如下:      (1)在连接管
使用SSIS创建同步数据库数据任务
使用SSIS创建同步数据库数据任务 SSIS(SQL Server Integration Services)是用于生成企业级数据集成和数据转换解决方案的平台。使用 Integration Services 可解决复杂的业务问题,具体表现为:复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理 SQL Server 对象和数据。这些包可以独立使用,也可
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 ios视频开发问题