오늘 처음으로 올려 봅니다.
sybase asiq 를 사용하고 있습니다.
프로시저에서 dynamic sql 문을 사용하여 select 하는
내용입니다.
tbtmsa01 테이블에 칼럼이 key, sa1, sa2, sa3, sa4, sa5, sa6, sa7,
sa8, sa9 ,sa10
있다고 했을때
key = '1' 일 경우에는 sa1, sa2, sa6, sa9
key = '2' 일 경우에는 sa3, sa4, sa5, sa7, sa8, sa9
나오게끔 할려 고 하는데요..
예)
CREATE PROCEDURE PTMP (
IN key CHAR(1) -- 키값
)
begin
if key = '1' then
set v_sql = 'sa1, sa2, sa6, sa9' ;
else
set v_sql = 'sa3, sa4, sa5, sa7, sa8, sa9' ;
end if;
EXECUTE IMMEDIATE '
select key,
' || v_sql1 ||'
from tbtmsa01
where key = ''1''
';
end;
1) 컴파일은 정상적으로 됩니다.
call ptmp('1'); 을 실행 했을경우
1, a, b, c, d 이렇게 5 개의 컬럼 이 나와야 되는데 아무것도
나오지 않습니다.
select 결과 값을 받을 려면 어떻게 해야되는지 궁금합니다.
답변 주시면 감사 하겠습니다.
|