2009-12-10 7 views
1

일부 테이블에서 XML을 생성하는 코드가 있습니다. 내가 쿼리하고있는 테이블은 XSD 파일에서 생성되었습니다.이 파일은 생성하려고하는 XML을 설명합니다. 문제는 테이블과 필드의 이름이 스키마의 이름과 다른 명명 규칙을 따르는 것입니다. 예를 들어 스키마의 "personID"라는 요소는 데이터베이스 테이블의 "PRSN_ID"가됩니다. 출력을 생성하려면 다음과 같은 코드가 필요합니다.XML 출력의 태그 이름 바꾸기

Select xmlelement("person", 
     xmlelement("personID",PRSN_ID), 
     xmlelement("personName",PRSN_NAM), 
... 

예상대로 지루해지기 시작합니다. 나는 더 나은 해결책을 찾고있다. xmlforest를 사용하여 태그에 선택된 열과 동일한 이름을 부여 할 수 있다는 것을 알고 있으며 이제는 번역 할 방법이 필요합니다. 예를 들어 나는, 생성 된 경우 :

/*the full long list of columns names can be generated so it's an easy copy-paste:*/ 
select xmlelement("PRSN", xmlforest(PRSN_ID,PRSN_NAM,... 

/*produces this:*/ 

<PRSN> 
    <PRSN_ID>1<PRSN_ID/> 
    <PRSN_NAM>BOB<PRSN_NAM/> 
... 

나는이로 번역해야합니다 :

<person> 
    <personID>1</personID> 
    <personName>BOB</personName> 
... 

어떻게 오라클 PL/SQL에 번역의이 종류의 일을 가겠어요? 나는 "PRSN_ID"가 "personID"로 변환되어야한다는 것을 알려주는 생성 된 매핑 파일을 가지고 있는데,이 작업을 계속 진행하는 가장 좋은 방법은 확실치 않습니다.

답변

3

이름이 바뀐 열을 사용하여 테이블에서보기를 만들 수 없습니다. 오라클은 큰 따옴표를 사용하여 대소 문자를 혼합하여 사용합니다.

SELECT PRSN_ID "personID".... 
FROM 
+0

Duh ... 나는 그것을 어떻게 놓쳤는가? : P 그래, 아마도 그 일을 끝낼 것입니다 (DBA 객체가이 테이블에 대해> 90 개의 뷰를 생성하지 않는 한, 스크립트를 통해이를 수행 할 수 있습니다). 그 아이디어를 가져 주셔서 감사합니다! – FrustratedWithFormsDesigner

+0

이것은 내가 선호하는 솔루션이지만 데이터베이스에서 뷰를 생성 할 수 없기 때문에 DBA가 뷰를 생성 할 수있을 때까지 Excel 매크로를 사용하여 추한 SELECT 문을 생성합니다. – FrustratedWithFormsDesigner

0

PRSN_ID가 personID 여야한다는 생성 된 매핑 파일이있는 경우 해당 매핑 정보를 사용하여 첫 번째 SELECT 명령을 생성하면 어떻습니까?

SELECT 명령을 사용하여 원하는대로 수행하면 생성하면 지루함이 사라집니다.

+0

동적으로 쿼리를 생성 하시겠습니까? 나는 그것에 대해 생각했다. 그것은 그 때 가장 많이 보였습니다 (지도 정보가 어떻게 든 텍스트 파일에서 추출되어야했을 것입니다), 비록 그것이 최선의 선택 옵션인지 다시 생각할 수 있습니다. 다른 팀이 우리가 현재 사용하고있는 것보다 다른 이름을 원할 수도 있으므로 출력을 생성 한 후에 변환하는 것이 가장 좋을 것이라고 생각했습니다. – FrustratedWithFormsDesigner