-- 이성준 님이 쓰신 글:
>> 안녕하세요
>>
>> create function chk_query(varchar) RETURNS INTEGER as'
>> DECLARE
>> str varchar(30);
>> tmp RECORD;
>>
>> BEGIN
>> select into tmp * from dosuban where uid=str;
>>
>> IF NOT FOUND THEN
>> insert into dosuban(uid) values(str);
>> return 1;
>> END IF;
>> return 0;
>> END;'
>> LANGUAGE 'plpgsql';
>>
>> 함수 자체는 만들어 지는데요
>> select chk_query('aaaa') 의 결과 1을 리턴하구요
>>
>> 그런데
>> select * from dosuban 의 결과를 확인해보면
>> null값이 들어가 있습니다
>> 인자로 준 aaaa란걸 인식을 못하는것 같은데요
>>
>> 글을 검색해보니까
>> str ALIAS FOR;
>> 이런 식으로 값을 주는 방법도 있던데 이경우는 함수는 만들어지나 실행하면
>> NOTICE: plpgsql: ERROR during compile of chk_query near line 2
>> ERROR: parser: parse error at or near ";"
>> 이런 에러를 출력합니다
>>
>> str을 $str로 써도 에러나구요
>>
>> 어떻게 해결해야 하나요..
>>
>> (그리고 만들어둔 사용자 함수의 내용을 볼수 있는 건가요?)
위의 내용중에..
select into tmp * from dosuban where uid=str;
밑의 내용으로 바꿔야 되지 않나요??
select * into tmp from dosuban where uid=str;
컴파일이 됬다고 하니 글쓰는 중에 잘못기입 했다면..^^
제생각에는 아래 내용중에 선언부분를
str varchar(30);
이렇게 바꿔보세요...
str alias for $1 <--숫자일 ...^^;
좋은 하루 되세요....
|