加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – SQL Loader错误:“可变长度字段超过最大长度.”

发布时间:2020-12-12 13:51:14 所属栏目:百科 来源:网络整理
导读:我有一个SQL Loader Control文件, LOAD DATA INFILE 'test.txt' INTO TABLE TEST replace fields terminated "|" optionally enclosed by '"' TRAILING NULLCOLS ( DOCUMENTID INTEGER(10),CUSTID INTEGER(10),USERID INTEGER(10),FILENAME VARCHAR(255),LAB
我有一个SQL Loader Control文件,
LOAD DATA  
INFILE 'test.txt'  
INTO TABLE TEST replace  
fields terminated "|" optionally enclosed by '"' TRAILING NULLCOLS  
( DOCUMENTID INTEGER(10),CUSTID INTEGER(10),USERID INTEGER(10),FILENAME VARCHAR(255),LABEL VARCHAR(50),DESCRIPTION VARCHAR(2000),POSTDATE DATE "YYYY-MM-DD HH24:MI:SS" NULLIF POSTDATE="",USERFILENAME VARCHAR(50),STORAGEPATH VARCHAR(255)
)

当我在其上运行SQL Loader时,它给了我一个错误,
记录1:拒绝 – 表TEST,列FILENAME出错.
可变长度字段超过最大长度.

这是那行…该列的长度低于255 ..

1 | 5001572 | 2 | /Storage/Test/5001572/test.pdf | test.pdf || 2005-01-13 11:47:49 ||

这是我在日志文件中注意到的奇怪之处

列名|职位| Len |期限|包括|数据类型
FILENAME |下一步| 257 | | | VARCHAR

我在表和控制文件中将长度定义为255.然而日志吐出257?我已经尝试将控制文件中的长度减少到253,因此它在日志文件中显示为255,但是同样的问题.

有帮助吗?这已经让我错过了两天了.

谢谢.

不要将数据字段定义为VARCHAR2和INTEGER.使用CHAR.大多数情况下,从文本文件加载数据时,您希望使用CHAR或DATE,尽管即使是从文本表单转换.大多数时候你甚至不需要长度说明符. CHAR字段的默认长度为255.您的控制文件应如下所示:
LOAD DATA
INFILE 'test.txt'
INTO TABLE TEST replace
fields terminated "|" optionally enclosed by '"' TRAILING NULLCOLS
(DOCUMENTID,CUSTID,USERID,FILENAME,LABEL,DESCRIPTION CHAR(2000),USERFILENAME,STORAGEPATH)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读