2013-08-14 8 views
2

모든 패턴이 COL ## 형식 인 사용자 정의 열 이름의 테이블이 있다고 가정합니다. 여기서 ##는 정수입니다. 그래서 일반적인 질문은 다음과 같습니다오라클, 열 이름을 동적으로 결정합니다.

select COL12 from MyCustomTable; 

그래서 다른 테이블에, 나는 모든 정수가 나는 MyCustomTable에 동적 쿼리를 구성하는 정수의 테이블을 사용하여 쿼리를 작성하고 싶습니다. 같은

뭔가 :

select 'COL' || (select colId from IdTable where Id = 12) from MyCustomTable; 

하지만 대신 모든 행 문자열 'COL12'를 반환하는 열 이름 COL12에 의해 확인 된 실제 값을 반환합니다.

내 전반적인 문제에 대해 걱정하지 마세요 :) 나는 내가 sqldeveloper 창에서이 작업을 수행 할 수 있는지 알고 그냥 궁금해서 직접 코드/절차/기능을 작성하지 않고, 등

답변

2

명백한 절대적으로 이 작업을 수행하는 안전하지 않은 방법은 EXECUTE IMMEDIATE 문을 사용하는 것입니다.

SPOOL 명령을 사용하여 결과를 임시 파일로 출력 한 다음 SPOOL OFF을 설정하고이 파일을 @ 지시어로 실행하십시오.

+0

나는 몇몇 다른 검색에서 EXECUTE IMMEDIATE를 보았지만 다른 것을 원했습니다. 스풀 옵션을 고려하지 않았습니다. 나는이 둘 모두 좋은 대답이라고 믿기 때문에 받아들이고 있습니다. – Rake36

관련 문제