버젼 : 7.3.4
Function에 대해 초보 웹개발자입니다. php & postgres 연동해서 웹서비스를 개발하는데
아무래도 쌩쿼리보다는 펑션 만들어 쓰면 성능에 많은 개선을 준다고 하여 쌩쿼리를 전부
펑션으로 바꾸는 작업중입니다.
Drop Function udf_cyspey_Select_tblBlog(varchar); Create Function udf_cyspey_Select_tblBlog(varchar) RETURNS SETOF RECORD AS ' select bl_strid,to_char(bl_dtmregdate,\'YYYY년 MM월 DD일\'),bl_strtitle,bl_strhello,bl_strhellocolor,bl_blnhellobold,bl_blnhelloshow,bl_strintro,bl_strcalendar,bl_blnblogopen,bl_blnvisitopen,bl_blnfriendsopen,date_part(\'day\',age(now(),bl_dtmregdate)) from tblblog where bl_strbid = $1; 'LANGUAGE 'SQL';
펑션은 위와같습니다. 단순히 셀렉만 하는 쿼리입니다.
그런데 얘를 호출할때 다음처럼 했는데 제목과 같은 에러를 냅니다.
$SQL = "select * from udf_cyspey_select_tblblog('$bid') as t(strid varchar(10),dtmregdate varchar(50),strtitle varchar(35),strhello varchar(255),strhellocolor char(7),blnhellobold boolean,blnhelloshow boolean,strintro varchar(70),strcalendar char(1),blnblogopen boolean,blnvisitopen boolean,blnfriendsopen boolean,dtmregdate2 int)";
분명 갯수도 맞고 mistype 에러두 아니고 왜 쿼리가 리턴하는 튜플과 실제 함수가 리턴하는 튜플이 매칭이 안 된다는 에러를 내는걸까요?
지금까지 Postgres 사용자정의함수 초짜의 질문입니다. 답변 부탁드려요....
|