2017-12-04 5 views
1

sqlldr을 사용하여 Oracle 데이터베이스로 데이터를 가져 오려고합니다.sqlldr을 사용하여 Varray로 데이터를 가져 오는 방법

나는이 문서를 사용하지만 오전 없습니다 성공적으로 : sqlldrsqlldr2

내가 뭐하는 거지 Decribing :

CREATE OR REPLACE TYPE fv_integer_varray_12 AS VARRAY(12) OF INTEGER NOT NULL; 

CREATE OR REPLACE TYPE VC_Array_MInteger_12 AS Object (
    fv_array fv_integer_varray_12, 
    MEMBER FUNCTION typeDimension RETURN NUMBER , 
    MEMBER FUNCTION typeName RETURN VARCHAR2); 
/ 

CREATE TABLE fv_varray_12 (
id NUMBER, 
fv fv_integer_varray_12, 
PRIMARY KEY (id) 
); 

이 제어 파일을 만듭니다

이 VARRAY 유형과 테이블을 생성 :

options (errors=9999999, rows=5) 
load data 
characterset WE8MSWIN1252 
infile '<path>' 
badfile '<path>' 
discardfile '<path>' 
into table fv_varray_12 
fields terminated by " " 
(id, fv VARRAY COUNT(12) (fv)) 

8 18 29 38 9 16 15 14 16 18 16 13 15 
9 22 31 32 8 13 18 10 15 18 16 13 13 

내가 명령을 통해로드하려고 :

sqlldr user/pass control=imp_fv_12dim.ctl 

I 오류 얻을 : 데이터가 될 부하는

SQL*Loader-403: Referenced column not present in table FV_VARRAY_12.

을하지만 모두 같은 사실이 아니다 id 및 fv 열이 있습니다.

내 제어 파일에 이상이 있어야합니다. 어떻게 해결할 수 있습니까?

답변

1

당신은 키워드 CONSTANT 누락 : 문서의 예제에서 누락

fv VARRAY COUNT(CONSTANT 12) (fv) 

(다음 만이 데이터는 이상한 모양을);

:하지만 너무 문서의 이전 버전에서 사용할 수 있습니다

샘플 데이터와

및 제어 파일을 그냥 수정 .. - 로딩 VARRAYs에 the 12c documentaion에서 연결되어 in the count_spec syntax diagram을 필요로하지만이 표시됩니다

> sqlldr user/pass control=imp_fv_12dim.ctl 

SQL*Loader: Release 11.2.0.4.0 - Production on Mon Dec 4 17:41:04 2017 

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 

Commit point reached - logical record count 2 

을 그리고 쿼리는 데이터를 보여줍니다 :

options (errors=9999999, rows=5) 
load data 
characterset WE8MSWIN1252 
infile 'imp_fv_12dim.dat' 
badfile 'imp_fv_12dim.bad' 
discardfile 'imp_fv_12dim.dis' 
into table fv_varray_12 
fields terminated by " " 
(id, 
    fv VARRAY COUNT(CONSTANT 12) (fv) 
) 

다음 작품

column fv format a80 
select * from fv_varray_12; 

     ID FV                    
---------- -------------------------------------------------------------------------------- 
     8 FV_INTEGER_VARRAY_12(18, 29, 38, 9, 16, 15, 14, 16, 18, 16, 13, 15)    
     9 FV_INTEGER_VARRAY_12(22, 31, 32, 8, 13, 18, 10, 15, 18, 16, 13, 13)    
관련 문제