엉뚱한 생각인데요..Select절에 기술한 칼럼명들을 목록으로 뽑을수 있을까요? 0 6 5,853

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
...

이런식으로 뽑을수 있는 방법이 있을까? 하는 생각이 문득들어 문의 드립니다..

by 우리집아찌 [2023.04.13 10:19:13]

http://www.gurubee.net/article/66419


by pajama [2023.04.13 10:56:28]

답이 이미 있었네요!


by 동동동 [2023.04.13 11:55:43]

우리집아찌 님 답변 감사드립니다..저와 같은 생각을 하시는 분이 계셨네요..ㅎㅎㅎ


by 우리집아찌 [2023.04.13 12:46:56]

원래 자바쪽 vo 제너레이터 만들때 쓰던 코드 입니다만...


by pajama [2023.04.13 10:31:06]

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;

 


by 동동동 [2023.04.13 12:03:00]

pajama 님 답변 감사드립니다..

gpt는 못하는게 없네요...사람과 대화하는 것 같더군요..^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입