by 동동동 [SQL Query] Oracle 쿼리 [2023.04.13 09:28:51]
안녕하세요...코딩을 하다 보니 Select절의 칼럼명과 동일하게 변수명으로 사용하는 경우가 있어서 들은 생각인데요..
혹시 쿼리의 Select절에 기술한 칼럼명들을 목록으로 뽑을수 있을까요?
예)
SELECT A.COD, B.DY, A.NM, B.NM AS B_NM, DECODE(...) AS VAL, ...
FROM A_TABLE A, B_TABLE B
이런식으로 쿼리가 있을때..SELECT절에 기술한 칼럼명을
COL_NM |
COD |
DY |
NM |
B_NM |
VAL |
... |
이런식으로 뽑을수 있는 방법이 있을까? 하는 생각이 문득들어 문의 드립니다..
mssql은 말씀하시는 기능이 있는것 같은데..오라클은 plsql로 구현해야 하는 것 같네요.
SELECT name FROM sys.dm_exec_describe_first_result_set ('쿼리', NULL, 0) ;
아래는 gpt가 가르쳐준 plsql 코드입니다.
리스트로 뽑는게 아닌 result set을 원하시는 거라면 아래 코드를 수정하거나
아예 java code로 작성하시는게 편하실 수도 있겠네요.
DECLARE l_cursor INTEGER; l_column_count INTEGER; l_desc_tab DBMS_SQL.DESC_TAB; l_col_cnt NUMBER; BEGIN l_cursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(l_cursor, '쿼리', DBMS_SQL.NATIVE); DBMS_SQL.DESCRIBE_COLUMNS(l_cursor, l_column_count, l_desc_tab); FOR i IN 1..l_column_count LOOP DBMS_OUTPUT.PUT_LINE(l_desc_tab(i).col_name); END LOOP; DBMS_SQL.CLOSE_CURSOR(l_cursor); END;