SQL 로더 오류: "변수 길이 필드가 최대 길이를 초과합니다."
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를 실행하면 오류가 발생합니다.
Record 1: Rejected - Error on table TEST, column FILENAME. Variable length field exceeds maximum length.
여기 그 줄이..그 기둥의 길이는 255도 훨씬 안 됩니다.
1|5001572|2|/Storage/Test/5001572/test.pdf|test.pdf||2005-01-13 11:47:49||
로그 파일 안에서 이상한 점을 발견했습니다.
Column Name | Position | Len | Term | Encl | Datatype
FILENAME | NEXT | 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),
POSTDATE DATE "YYYY-MM-DD HH24:MI:SS" NULLIF POSTDATE=BLANKS,
USERFILENAME,
STORAGEPATH
)
DCookie의 경우 +1이지만, 이를 확장하려면 표에 지정된 데이터 유형과 SQL*loader 제어 파일의 데이터 유형을 구분하는 것이 중요합니다. 이는 다소 다른 의미이므로 혼란스럽기 때문입니다.
먼저 설명서를 살펴보고 일반 텍스트 파일을 로드할 때 "휴대용" 데이터 유형을 사용해야 합니다.
Varchar는 "non-portable" 타입으로, 다음과 같습니다.
... 이진 길이 하위 필드와 지정된 길이의 문자열로 구성됩니다.
DCookie의 말에 따르면 CHAR는 매우 일반적으로 사용되는 SQL*Loader 데이터 유형이며, INTEGER EXTER는 DOCUKID 등에 지정할 수 있습니다.
언급URL : https://stackoverflow.com/questions/10386020/sql-loader-error-variable-length-field-exceeds-maximum-length
'programing' 카테고리의 다른 글
범위가 분리된 지시어에 ng-show를 사용하는 방법 (0) | 2023.11.04 |
---|---|
사용자 지정 게시물 유형 및 범주 (0) | 2023.11.04 |
{"readyState":4", status":200", statusText":"성공"}을(를) 사용한 오류 콜백 (0) | 2023.11.04 |
SQL 쿼리에서 기본값을 반환하는 방법 (0) | 2023.11.04 |
jQuery를 사용하여 JavaScript 개체에서 항목 추가/제거 (0) | 2023.11.04 |