오라클은 XML 형식의 파일을 표준화하여 업로드합니까? XML 출력에 사용되는 표준 형식 (구조 = ROWSET/ROW/columname
)은 적절한 제어 파일 내용으로 sqlldr을 실행하여 다시 테이블로 다시 업로드 할 수 있다고 생각했습니다.
그러나 웹에서이 모든 것을 찾을 수는 없으므로 시험 후에 오류 메시지는 XML 형식의 테이블로 XML을 업로드 할 수 있다는 것을 나타내는 것처럼 보입니다. 여기서 XML 형식의 테이블로 데이터를 업로드 할 수 있습니다. XML 형식의 데이터Oracle SQL * Loader가 XML을 처리 할 수 있습니까?
0
A
답변
1
아니요, SQL * Loader는 "플랫"파일 만 처리 할 수 있습니다.
하나의 옵션은 ROWSET/ROW/column
형식을 텍스트 파일로 변환 한 다음이를 대상 테이블로 가져 오는 XSLT 변환을 작성하는 것입니다.
또 다른 옵션은 XML을 단일 행으로 가져온 다음 Oracle의 XML 함수를 사용하여 해당 스테이징 테이블에서 관계형 결과를 선택하고이를 실제 테이블에 삽입하는 것입니다.
1
표준화 된 옵션이 없지만이 특정 형식으로 할 수 있습니다.
CREATE TABLE test_tab (
id NUMBER,
text VARCHAR2(50)
);
그리고 test_tab.xml
파일에 기록 :
<ROWSET>
<ROW>
<ID>1</ID>
<TEXT>This is some text</TEXT>
</ROW>
<ROW>
<ID>2</ID>
<TEXT>This is some more text</TEXT>
</ROW>
<ROW>
<ID>3</ID>
<TEXT>This is some other text</TEXT>
</ROW>
<ROW>
<ID>4</ID>
<TEXT>This is also some text</TEXT>
</ROW>
</ROWSET>
및 제어 파일 test_tab.ctl
: 당신은 테이블이있는 경우
LOAD DATA
INFILE 'test_tab.xml'
CONCATENATE 4
INTO TABLE test_tab
(
dummy FILLER CHAR(15) TERMINATED BY "<ROW>",
id CHAR(10) ENCLOSED BY "<ID>" AND "</ID>",
text CHAR(40) ENCLOSED BY "<TEXT>" AND "</TEXT>"
)
당신은 할 수 있습니다 :
sqlldr usr/pwd control=test_tab.ctl
Commit point reached - logical record count 4
SELECT * FROM test_tab;
ID TEXT
---------- --------------------------------------------------
1 This is some text
2 This is some more text
3 This is some other text
4 This is also some text
오라클이 볼 수있는 디렉토리에 넣으면 같은 파일에서 외부 테이블을 생성 할 수도 있습니다.
CREATE TABLE test_tab (
id NUMBER,
text VARCHAR2(50)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY some_dir
ACCESS PARAMETERS
(
RECORDS DELIMITED BY "</ROW>"
FIELDS
(
dummy CHAR(15) TERMINATED BY "<ROW>",
id CHAR(10) ENCLOSED BY "<ID>" AND "</ID>",
text CHAR(40) ENCLOSED BY "<TEXT>" AND "</TEXT>"
)
)
LOCATION ('test_tab.xml')
)
PARALLEL
REJECT LIMIT UNLIMITED;
Table created.
SELECT * FROM test_tab;
ID TEXT
---------- --------------------------------------------------
1 This is some text
2 This is some more text
3 This is some other text
4 This is also some text
관련 문제
- 1. SQL 쿼리를 일괄 처리 할 수 있습니까?
- 2. Oracle SOA에서 배치 처리
- 3. xml을 액세스 할 수 있습니까?
- 4. SQL XML을 사용하여 각 레코드를 삽입하고 출력 할 수 있습니까?
- 5. SQL Server에서 XML을 HTML로 변환 할 수 있습니까?
- 6. 42 억 레코드를로드 한 후 SQL * Loader가 멈춤
- 7. Attunity oracle 연결로 SSIS를 SQL Server에 배포 할 수 있습니까?
- 8. SQL Server에서이 ORACLE 문을 어떻게 수행 할 수 있습니까?
- 9. Oracle PL/SQL에서이를 수행 할 수 있습니까?
- 10. 잘못된 XML을 처리 할 .NET 용 Parser
- 11. 병렬 처리 할 수 있습니까?
- 12. Oracle Instant Client에서 직접 경로로드를 사용할 수 있습니까?
- 13. RestSharp는이 XML을 deserialize 할 수 있습니까?
- 14. XPathNavigator에서 원본 XML을 검색 할 수 있습니까?
- 15. 파이썬에서는 xml을 쉽게 편집 할 수 있습니까?
- 16. XML을 base64로 직렬화 할 수 있습니까?
- 17. xslt에서 전체 XML을 출력 할 수 있습니까?
- 18. Android SQL 데이터베이스에서 문자열의 현지화를 처리 할 수 있습니까?
- 19. Rails의 활성 레코드가 SQL 집계 쿼리를 처리 할 수 있습니까?
- 20. SQL Server에서 한 번에 한 개씩 처리 할 수 있습니까?
- 21. 어떻게하면 Oracle 테이블에 중복 행을로드하지 못하게 할 수 있습니까?
- 22. Oracle XMLType 사용시 null 처리
- 23. Oracle DataBase에서 홈에 액세스 할 수 있습니까?
- 24. 언제 DataContext를 처리 할 수 있습니까?
- 25. 어떤 ORM이 데이터베이스의 XML을 쿼리 할 수 있습니까?
- 26. Oracle SQL Developer는 C#
- 27. Oracle Server 11g : 원격 연결을 어떻게 비활성화 할 수 있습니까?
- 28. oracle 오류 코드 처리 cx_oracle
- 29. Scala에서 XML.load를 사용하여 403을 처리 할 수 있습니까?
- 30. MySQL과 전체 램프로 매일 5M 트랜잭션을 처리 할 수 있습니까?
OK - 올바른 컬럼 구분자가있는 파일을 사용합니다. 불쌍하고 약간의 예기치 못한 일 - 오라클에게 11.3에이 기능을 추가 할 힌트 :-). – Maestro13
오라클은 차별화를 요구합니다. http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb25loa.htm 및 http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/ xdb25loa.htm # ADXDB2900 –
@ SeanB.Durkin : XML 파일 (또는 조각)의 내용을 단일 XMLType 열로로드하는 예제입니다. XML 구조를 파싱하고 개별 태그의 내용을 다른 열에 넣는 것이 아닙니다. XML : ' Arthur 'SQLLoader가'person (id, name) '테이블로 처리 할 수 없습니다. –