2013-02-17 5 views
1

여러 열에 열 별칭을 자동으로 지정하려고합니다. 내 테이블에는 일반적으로 최소 20 개의 열이 있습니다. "column1 AS XXX_column1, column2 AS XXX_column2 ... x20"과 같은 것을 쓰지 않으려 고합니다.ORACLE : SELECT 문에서 함수에 의해 반환 된 열 이름 사용

저는 PLSQL에 익숙하지 않지만 표준 SELECT 절에서 함수가 직접 반환 한 곱셈 된 "열 AS XXX_column"의 출력을 사용하고 싶습니다.

그래서 열 이름을 생성하는 함수 (RETURN 데이터 형식은 VARCHAR2 임)를 작성했습니다. 나는 그것을 SELECT 문에 직접 사용하고 싶다. 이것의 아래에 간단하게 예 :

--- 기능

CREATE OR REPLACE FUNCTION simple RETURN varchar2 IS 
BEGIN 
    RETURN ‘my_column’; 
END simple; 

---

SELECT simple FROM my_table; 

이 작동하지 않는 선택합니다. 이 함수의 출력이 인용으로 전달되는 것 같다 즉

SELECT ‘my_column’ FROM my_table; 

그래서 SELECT의 출력 값으로 채워 행의 목록 MY_TABLE입니다 :

COLUMN simple 
ROW1 my_column 
ROW2 my_column 
ROW3 my_column 

사람이 좀 도와 주시겠습니까?

+0

불분명 한 코드를 게시하고 달성하려는 목표를 추측하기를 기대하는 대신 왜 시나리오를 설명하면 안됩니까? – APC

+0

여러 열에 자동으로 열 별칭을 지정하려고합니다. 내 테이블에는 일반적으로 최소 20 개의 열이 있습니다. "column1 AS XXX_column1, column2 AS XXX_column2 ... x20"과 같은 것을 쓰는 것은 내가 피하려고하는 것입니다. 나는 PLSQL에 익숙하지 않지만 표준 SELECT 절에서 함수가 직접 반환 한 곱셈 된 "열 AS XXX_column"의 출력을 사용하고 싶습니다. – zwornik

+1

귀하의 설명에 답할 가치가있는 질문이 나와 있습니다. 불행히도 질문은 이미 닫혀 있으므로 사람들이 다시 투표하지 않는 한 답변을 드릴 수 없습니다. 여기서 가르치는 것은 항상 당신이하려는 것을 설명하는 것입니다. 불량하거나 명확하지 않은 질문은 수명이 짧습니다. – APC

답변

2
CREATE OR REPLACE FUNCTION simple RETURN varchar2 IS 
BEGIN 
    RETURN ‘my_column’; 
END simple; 


--- Select 
DECLARE 
    myCol VARCHAR2(128); 
BEGIN 
    myCol := simple; 
    EXECUTE IMMEDIATE 'SELECT ' || myCol || ' FROM my_table'; 
END; 
+0

빠른 답장을 보내 주셔서 감사합니다. 제공 한 SELECT 문은 PLSQL 블록 안에 있습니다. 내가 찾고있는 표준 SQL (SELECT 간단한 FROM my_table) 내 함수를 사용하는 것입니다. 이것을 할 수 있습니까? 어쩌면 함수가 반환 한 다른 데이터 형식을 사용할 수도 있습니다. 나는 단지 짐작하고있다. – zwornik

+0

동적 SQL이 표준 SQL이 아닌 것 같습니다. – Sebas

+0

컨텍스트 란 무엇입니까? 항상 해결책이 있습니다 – Sebas

관련 문제