空值在映射后给出错误的值

Empty value is giving wrong Value after being mapped

我有三个 Table,它们都有一个名为 RECORD_TYPE 的列,它在源文件中显示为空记录。

Table 1:

|RECORD_TYPE|
----------
|('null')   |

Table 2:

|RECORD_TYPE|
----------
|""         |

Table 3 :

|RECORD_TYPE|
 ----------
|""         |

映射的列在三个表中具有相同的 datatype,即 VARCHAR2(255)

Table 1 显示正确结果 --> ('null') 但其他两个给出空引号。

Table 1 的 DDL:

      CREATE TABLE "ODSSTAGE"."INXN_LA_RENEWAL_STG" 
       (    col1,
            col2,
            .
            .
    
        "RECORD_TYPE" VARCHAR2(255 BYTE) 
       )  

Table2 的 DDL:

  CREATE TABLE "ODSSTAGE"."INXN_LA_TERMINATION_STG" 
   (    col1,
       col2,
        .
        .
        .



    "RECORD_TYPE" VARCHAR2(255 BYTE)  
   ) 

Table3 的 DDL:

      CREATE TABLE "ODSSTAGE"."INXN_LA_NEW_STG" 
       (    col1,
            col2,
            ..
            ..
            ..
        "RECORD_TYPE" VARCHAR2(255 BYTE) 
       ) 

 

Source are same for all three

请记住:"" 是记录显示为空的东西,但是当我将记录复制粘贴到记事本或其他地方时,我得到“”

What do you get if you use SELECT DUMP(record_type) FROM ODSSTAGE.INXN_LA_RENEWAL_STG or SELECT DUMP(record_type) FROM ODSSTAGE.INXN_LA_NEW_STG?

只是简单的 NULL 第二次我得到 Typ=1 Len=1: 13

您在 ODSSTAGE.INXN_LA_NEW_STG 中没有 NULL(空)值 table 您只有一个回车 return (ASCII 13) 字符。

您可以使用以下方法找到这些行:

SELECT *
FROM   ODSSTAGE.INXN_LA_NEW_STG
WHERE  record_type = CHR(13);

或使用以下方法将它们更新为 NULL 值:

UPDATE ODSSTAGE.INXN_LA_NEW_STG
SET   record_type = NULL
WHERE record_type = CHR(13);