powercenter问题

来源:互联网 发布:手机直播网络要求 编辑:程序博客网 时间:2024/06/08 01:01

1、Powercenter9.6.1hf2中,当把oracle的表导入的过程中发现oracle中的varchar2类型再designer中变换成了nvarchar2(这种正常),nvarchar2变换成了varcahr2类型(不正常,会导致插入数据的时候数据被截断,长度不够)

应该修改ODBC,把以下圈起来的地方勾选上


2、目标为falt file类型的时候,如果输出了字段名字,会在第一个字段的名字前面加上一个‘#’,如果要去掉这个符号,需要添加RemoveOutputHeaderHash = Yes

 

 

3、把Informatica developer客户端改成中文的,修改C:\Informatica\9.6.1\clients\DeveloperClient\developerCore.ini,在最后一行加上-Duser.language=en

4、rank组件

当排序的字段有null的时候,此条记录不输出;

当排序的记录的排序字段的值相同的时候,这几条记录会全部输出

5、备份资料库的时候出现以下错误,是因为node的备份目录设置的不对,没有那个路径,指定一个合适的目录就可以了,且存储库服务得是启动的状态

 


 

6、ORA-30926: unable to get a stable set ofrows in the source tables

解决方法:遇到这个问题的原因是用来merge来更新表,但是关联的值上面有重复,所以会出现上述的错误。

 

7、ORA-26089: LONG column"OIMAGE" must be specified last

字段oracle oimage          LONGRAW

解决方法:把这个字段拉到target最下面

8、WRT_8229 发生数据库错误:

ORA-39778:the parallel load option is not allowed when loading lob columns

 

数据库驱动程序错误...

函数名称:Prepare DPL

SQL 语句:INSERT INTOODS_BS_CLASS(ID,NSCHOOLID,SCODE,SFCODE,SCLASSTYPECODE,SPROJECTCODE,SDEPTCODE,SAREACODE,SROOMCODE,SNAME,SDESCRIPTION,NSTATE,BCANREGISTER,BISEND,BISRESIDECLASS,SATTRIBUTE,SPRINTADDRESS,SLOCATION,DTREGISTER1STDATE,SREGISTERTIME,DTBEGINDATE,DTENDDATE,NHOLIDAY,SPRINTTIME,NLESSON,NTRYLESSON,NFREELESSON,NINSERTLESSON,SMEMO,NNORMALCOUNT,NMAXCOUNT,DFEE,DBOOKFEE,DBOOKCOST,DTRYFEE,DINSERTFEE,NCURRENTCOUNT,NSEQNUMBER,NPOSTTRANCOUNT,NSYSTEMTAG,BVIRTUAL,SPRINTMEMO

解决方法:

把目标的加载模式改为normal,不要用bulk

 

9、输出文本的时候指定输出文本的名字:

把target导出之后把想要为文本命名的字段上加上ISFILENAMEFIELD ="YES",

如果想把每行都输出成一个文本文件,则需要在mapping中增加一个事物控件

 

10、ORA-12514: TNS:listener does notcurrently know of service requested in connect descriptor

出现这个原因是因为oracle服务器的防火墙打开了,关闭之后或者允许固定的IP访问即可

 

11、sql server的bit类型用ODBC抽取的时候会转换成0、1,用native抽取的时候会转换成True和False

 

12、导入导出的时候由于中英文的原因分区名称会不一样

解决方法:‘Partition #1’换成    ‘分区编号1’

 

13、抽取数据到MySQL的时候数据没有进去,应该是中文的进不去

在集成服务中的custom properties中添加

BlkDtmNumRowsMax=1

OptimizeODBCWrite=NO

14、关于变量

用set函数给变量赋值的时候,set函数会返回当前的值,变量的值在session运行的过程中一直是session上次运行后保存的值,运行过程中保持不变,session运行完成后才会把值保存到存储库。如下所示

set函数返回的值变量初始值原始值10120220130340450560660360460560660160460570734034340234013401534083409

15、往oracle或sqlserver抽取数据的时候如果字符超过了定义的长度,会把数据截断,但是并不会有reject的记录

数字可以被拒绝,

salesforce往oracle抽取数据的时候字符过长会被reject

 

16、expression中 字段='value',相等返回1,不相等返回0

 

17、目标是mysql的时候遇到的问题:

如果目标表是mysql那么如果更新方式设置成了updateelse insert会出现很大的问题,mysql对于更新的记录如果更新后的值和更新前的值一样,影响的行数为0,powercenter此时认为这种没有更新成功,会对这条数据进行插入,这就导致了目标中会出现多条相同的记录MYSQL的odbc驱动是

 

18、oracle报以下的错误是因为导入源的时候clob类型导入成了nclob

ORA-01406: fetchedcolumn value was truncated

ORA-24806: LOB formmismatch

数据库驱动程序错误...

 

 

19、iif函数

当iif(condition,results1[,results2])的results2没有写的时候,如果条件为false则会返回默认值,当数据类型为数值型时返回0,为字符型时返回空串'',为日期类型时返回null

 

20、oracle发邮件报错:ORA-29278:SMTP transient error: 421 Service not available,是由于oracle访问不了邮件服务器,IP受限

ORA-29278: SMTPtransient error: 421 Service not available

 

----- PL/SQL CallStack -----

  object     line  object

  handle   number  name

0xcd76bc350        59 procedure MDM01.SEND_CH_MAIL

0xcd4ac1f80        28 procedure MDM01.SEND_MAIL

把smtp服务器加入白名单,允许oracle访问

 

21、sqlserver目标表的某个字段设置为非空,但是抽进去的数据有空值会报写莫名其妙的错误。

 


  

22、设置文本类型目标的日期显示格式

 

23、目标表为sqlserver的时候表中字段长度不够,且用bulk方式加载数据会报以下错误

SQL Server 消息: 链接服务器'(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].sName' 无效的数据


24、the maximum precision allowed for string column in PowerCenter is 104857600,当列的长度超过104857600时运行session会报错。

TE_7022 : TShmWriter: Initialized 然后就没有日志了。当列的长度没有超过104857600,但是有很多列的值都是比较大的值时,也会出现此错误


25、当使用cmd执行pmcmd命令的时候报以下错误,如果使用工作流执行则没有错误

When attempting to run a PowerCenter pmcmd command the following error is displayed:

PCSF_46007 No gateway connectivity is provided for domain[xxx]. 
ERROR: Cannot connect to Integration Service [xxx]

解决方法:

需添加以下的环境变量

Variable NameValue NameINFA_DOMAINS_FILEC:\<PowerCenter_HOME>\domains.infa

26、通过ODBC连接mysql的时候,超过一定的时间则会报Lostconnection to MySQL server during query,需要勾选上ODBC的参数Interactive Client,如图所示






0 0
原创粉丝点击