안녕하세요 sql 질문드립니다. 1

by dbatrace [SQL Query] [2022.05.23 16:23:43]


select SQL_ID, LAST_CAPTURED, NAME, VALUE_STRING
from  DBA_HIST_SQLBIND
where sql_id = :sql_id
order by SQL_ID, LAST_CAPTURED, POSITION
/

위와 같이 실행할경우 다음과 같은 결과를 보입니다.

SQL_ID LAST_CAPTURED NAME VALUE_STRING  
fqy7chnpsgf10 2022-05-19 07:55:45  :B2  AB
fqy7chnpsgf10 2022-05-19 07:55:45  :B1 3
fqy7chnpsgf10 2022-05-19 10:55:45  :B2  BA
fqy7chnpsgf10 2022-05-19 10:55:45  :B1 2
fqy7chnpsgf10 2022-05-20 22:55:23  :B2  AA
fqy7chnpsgf10 2022-05-20 22:55:23  :B1 5
fqy7chnpsgf10 2022-05-20 10:00:12  :B2  CC
fqy7chnpsgf10 2022-05-20 10:00:12  :B1 1

이것을 다음 아래와 같은 시간대 순으로 수행된 bind변수 정보를 가로형태로 보고싶습니다. 조언 부탁드립니다.

SQL에 따라 사용된 bind의 숫자로 다르기 때문에 가로 컬럼이 가변적으로 변해야 할거같습니다.

단순 생각은 해당 sql_id에 대해서 max(POSITION)을 이용해서 가로 컬럼을 가변시킬수 있을까 생각은 됩니다만 조언 부탁드리겠습니다.

SQL_ID LAST_CAPTURED  :B2   :B1
fqy7chnpsgf10 2022-05-19 07:55:45 AB 3
fqy7chnpsgf10 2022-05-19 10:55:45 BA 2
fqy7chnpsgf10 2022-05-20 22:55:23 AA 5
fqy7chnpsgf10 2022-05-20 10:00:12 CC 1
by 우리집아찌 [2022.05.23 16:30:28]

가변은 안됩니다. 

보통은 구분자를 붙여서 컬럼 하나로 하던가

컬럼을 임의로 여려개 (예상되는 MAX 컬럼수 만큼 ) 만들어서 사용합니다.

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