for loop 돌려서 여러개의 v_name을 faxname에 concate 해서 데이타를 return 받고 싶은데
LET faxname = (faxname||','||v_name);
이문장이 실행이 되지 않네요.
로그를 찍어보면 looping 돌면서 v_name은 가져오는데
faxname은 ''로 나옵니다.
trace expression : idx = 0
trace expression : Firstname 111
trace expression : Faxname
이유를 아시는 분 가르쳐주세요.
그리고, 나머지 구하는 연산자 ( %, mod ) 다해봐도 에러가 나네요.
인포믹스 프로시저에서는 나머지 연산자가 뭐에요?
create procedure "informix".get_faxname( p_userno int, p_senderno char(20)) returning char(250) ;
define idx int;
define faxname char(250);
define v_name char(50);
define v_temp int;
define v_table char(20);
//LET v_temp = p_userno mod 2 ; syntax error
LET v_table = 'address_member'||v_temp;
LET faxname = "";
LET idx = 0 ;
SET DEBUG FILE TO './debug.trace';
foreach cur1 FOR select firstname into v_name from address_member2 where userno = p_userno and fax=p_senderno
if ( idx >= 5 ) THEN EXIT FOREACH;
END IF;
TRACE ' idx = ' || idx ;
TRACE ' Firstname ' || v_name;
TRACE ' Faxname ' || faxname;
LET faxname = (faxname||','||v_name);
LET idx = idx + 1 ;
end foreach;
return (faxname);
end procedure;
|