Sql Loader错误“令牌超过最大允许长度258个字符”

时间:2011-10-21 11:02:52

标签: sql-loader

使用SQL Loader将数据加载到表中时出现以下错误。

SQL*Loader-350: Syntax error at line 21.
Token longer than max allowable length of 258 chars
                                                                    ')
                                                  ^

控制文件如下:

OPTIONS (SKIP = 1)
LOAD DATA 

APPEND
PRESERVE BLANKS
INTO TABLE "INTL"
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS

(
CO_BDI_INTERLOCUTOR CHAR(15),
NU_DOCUMENTO    CHAR(17),
CO_TRATAMIENTO  CHAR(1) "NVL(:CO_TRATAMIENTO,' ')",
DS_NOMBRE   CHAR(50),
DS_APELLIDO_1   CHAR(50),
DS_APELLIDO_2   CHAR(50),
CO_CARGO    CHAR(2) "NVL(:CO_CARGO,'  ')",
DS_COMENTARIO   CHAR(255) "NVL(:DS_COMENTARIO,'                                                                                                                                                                                                                                                               ')",
DS_ARE_FUN_ITL_GRC  CHAR(100),
FX_INI_VIGENCIA CHAR(10),
FX_FIN_VIGENCIA CHAR(10) "NVL(:FX_FIN_VIGENCIA,'          ')",
CO_CUC_CLIENTE  CHAR(8),
CO_CUC_CABECERA CHAR(8),
CO_HITO CHAR(8),
DS_SIS_ORIGEN   CHAR(4),
CO_INTERLOCUTOR CHAR(15),
CO_TIPO_DOC CHAR(1),
CO_IDIOMA   CHAR(3)
)

问题似乎是字段“DS_COMENTARIO”,因为如果字段为NULL,我用长度为255的空格替换数据。

我的其他表和Control文件也有类似的问题。

你能帮帮我吗?

谢谢, Savitha

1 个答案:

答案 0 :(得分:1)

尝试

DS_COMENTARIO CHAR(255)“NVL(:DS_COMENTARIO,LPAD('',255,'')”,

它基本上将1个字符串填充为255个字符。