wm_concat이 의미가 있으려면 sys_guid() 함수가 row를 리턴하는 함수여야하는데..
저런 형태로도 사용할 수 있는 건가요?
row를 리턴하는 함수일 때는
table(sys_guid()) 이런 형태로 썼던 것 같은데..
찾아보니 sys_guid()가 사용자 함수가 아니네요.
https://docs.oracle.com/cd/B12037_01/server.101/b10759/functions153.htm
SYS_GUID generates and returns a globally unique identifier (RAW value) made up of 16 bytes. On most platforms, the generated identifier consists of a host identifier, a process or thread identifier of the process or thread invoking the function, and a nonrepeating value (sequence of bytes) for that process or thread.
임의의 값을 리턴하는 함수 같은데.. wm_concat을 왜 쓴 건지 알 수 없네요.
그냥 select sys_guid() from dual 이렇게 쓰셔도 결과가 똑같을 것 같은데요.
만약 리턴하는 데이터의 형태가 달라졌다면.. 위의 내용을 보면 host 식별자, 프로세스나 스레드 식별자를
리턴한다는 것으로 보아 12c로 업그레이드 하시면서 시스템 변경에 따라 차이가 날 수도 있을 것 같긴 하네요.
select sys_guid() from dual;하면
X'552ca0e77aa03cd0e0540017a4771000'
이런값을 가져오고
SELECT to_char(wm_concat(sys_guid())) PJT_ATTACH_id FROM dual; 이렇게 하면
그래서 저걸 날리면
552CA0E77AA03CD0E0540017A4771000 이렇게 가져오더군요
일단 어쩔수 없이 12C에서는
select UPPER(TRIM(SUBSTR(sys_guid(),1,36))) PJT_ATTACH_ID from dual ; 이렇게 하면 동일한 값을 가져오긴 하는데
그래서 질문을 드린거죠