【问题标题】:ora-01858 a non-numeric character was found where a numeric was expected informaticaora-01858 在需要数字的地方发现了一个非数字字符 informatica
【发布时间】:2019-12-16 12:25:40
【问题描述】:

我在 informatica 10.2.0 中创建了一个非常简单的映射。每当我尝试执行工作流时,会话任务都会失败。

错误如下,

Severity    Timestamp   Node    Thread  Message Code    Message
ERROR   16-12-2019 05:24:50 PM  node01_prdeim   READER_1_2_1    RR_4035 SQL Error [
ORA-01858: a non-numeric character was found where a numeric was expected

Database driver error...
Function Name : Execute
SQL Stmt : select MARKET_ID,MARKET_NAME,MONTH_YY,'Y' ACTUAL_FLAG  from TABLEAU_NEW_MARKET_COVERAGE
where 
TO_DATE(MONTH_YY)=TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE,-1), 'MON'),'DD-MON-YYYY')
and OFMCG_SALES>667
Database driver error...
Function Name : Execute
SQL Stmt : select MARKET_ID,MARKET_NAME,MONTH_YY,'Y' ACTUAL_FLAG  from TABLEAU_NEW_MARKET_COVERAGE
where 
TO_DATE(MONTH_YY)=TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE,-1), 'MON'),'DD-MON-YYYY')
and OFMCG_SALES>667].

源表结构,

Name                   Null? Type          
---------------------- ----- ------------- 
BRANCH_CODE                  VARCHAR2(10)  
MARKET_NAME                  VARCHAR2(255) 
MARKET_ID                    NUMBER(12)    
MARKET_POP_GROUP             VARCHAR2(50)  
MONTH_YY                     DATE          
OFMCG_SALES                  NUMBER        
TYPE                         VARCHAR2(255) 
SERVICE_MODE                 VARCHAR2(255) 
SERVICE_FLAG                 VARCHAR2(255) 
QUALITY_MKT_TARGET           NUMBER        
QUALITY_MKT_UOB              NUMBER        
QUALITY_MARKET               VARCHAR2(26)  
CONCERN_MARKET               VARCHAR2(26)  
QUALITY_MKT_ACTUAL_UOB       NUMBER        
PLAN_FLG                     VARCHAR2(500) 

目标表结构,

Name         Null?    Type          
------------ -------- ------------- 
MARKET_ID    NOT NULL VARCHAR2(20)  
MARKET_NAME  NOT NULL VARCHAR2(200) 
WDCODE       NOT NULL VARCHAR2(20)  
POP_GROUP             VARCHAR2(50)  
DISTRICT              VARCHAR2(100) 
SUB_DISTRICT          VARCHAR2(100) 
PLAN_FLAG             VARCHAR2(20)  
ACTUAL_FLAG           VARCHAR2(20)  
TRANSDATE    NOT NULL DATE          
LASTUPDATE   NOT NULL NUMBER  

在我的源限定符中,sql 覆盖是,

select MARKET_ID,MARKET_NAME,MONTH_YY,'Y' ACTUAL_FLAG  from TABLEAU_NEW_MARKET_COVERAGE
where 
MONTH_YY=TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE,-1), 'MON'),'DD-MON-YYYY')
and OFMCG_SALES>667

这是一个非常简单的映射,

SRC-EXP-JNR-UPD-TGT

试图查找错误详细信息。数据类型在 informatica 和 oracle 中都很好。

有人可以指导我是什么导致了这个问题吗?

【问题讨论】:

    标签: oracle informatica-powercenter


    【解决方案1】:

    您的 MONTH_YY 是日期列,但您仍在尝试将其转换为日期。

    使用以下查询:

    SELECT
        MARKET_ID,
        MARKET_NAME,
        MONTH_YY,
        'Y' ACTUAL_FLAG
    FROM
        TABLEAU_NEW_MARKET_COVERAGE
    WHERE
        TRUNC(MONTH_YY) = TRUNC(ADD_MONTHS(SYSDATE, - 1), 'MON') 
        -- used trunc for MONTH_YY
        -- removed to_char from right side expression
        AND OFMCG_SALES > 667
    

    干杯!!

    【讨论】:

    • 谢谢.. 现在可以成功运行 wf。特别感谢您澄清错误。,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多