프로그래밍
첫 페이지 회원가입 로그인
비공개 손님 2016-07-22 17:29:17
PPAS 함수 생성 질문 드립니다.

안녕하세요.
함수 하나를 생성하려고 하는데 syntax error 가 발생하는데 어디가 잘못되었는지 잘 모르겠어서 질문 드려봅니다.

CREATE OR REPLACE FUNCTION fn_get_up_role_list(role_id character varying)
  RETURNS character varying AS
$BODY$
DECLARE
    ROLE_LIST1 VARCHAR = 'ROLE001|ROLE002|ROLE003|ROLE004|ROLE018'
    ROLE_LIST2 VARCHAR = 'ROLE002|ROLE003|ROLE004|ROLE018'
    ROLE_LIST3 VARCHAR = 'ROLE003|ROLE004'
    ROLE_LIST4 VARCHAR = 'ROLE004|ROLE018'
    ROLE_LIST VARCHAR = '';
BEGIN
  IF ROLE_ID = 'ROLE001' THEN
          ROLE_LIST = ROLE_LIST1;
  ELSE IF ROLE_ID = 'ROLE002' THEN
          ROLE_LIST = ROLE_LIST2;
  ELSE IF ROLE_ID = 'ROLE003' THEN
          ROLE_LIST = ROLE_LIST3;
  ELSE IF ROLE_ID = 'ROLE018' THEN
          ROLE_LIST = ROLE_LIST4;
  ELSE
          ROLE_LIST = ROLE_ID;
  END IF;
          RETURN ROLE_LIST;
  END;      
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
  ALTER FUNCTION fn_get_up_role_list(character varying)
    OWNER TO tfms;
  GRANT EXECUTE ON FUNCTION get_default_sdr_factor() TO tfms;
  GRANT EXECUTE ON FUNCTION get_default_sdr_factor() TO public;
  GRANT EXECUTE ON FUNCTION get_default_sdr_factor() TO tfms_admin;
  GRANT EXECUTE ON FUNCTION get_default_sdr_factor() TO tfms_user;


위 쿼리를 돌리면 아래와 같은 에러가 발생합니다.

ERROR: syntax error at or near ";"
LINE 24: END;

*********** 오류 **************
ERROR: syntax error at or near ";"
SQL 상태:42601
캐릭터:659


위와 같은 에러가 발생하는데..
기존 함수 생성 된 거 보면 END 뒤에 세미콜론 붙어있는데...
샘플예제 찾아봐도 그렇게 되어있고..

뭐가 문제인지 잘 모르겠습니다 ㅜ_ㅠ

도움 부탁 드립니다.

질문 | 948명이 읽었어요. 3.237.27.159 |

0
1 비공개 손님 2016-07-22 18:21:41
assignment가 '='가 아니라 ':='라서 그런거 아닌가요?
ROLE_LIST := ROLE_LIST1;
2 비공개 손님 2016-07-22 18:59:45
1//기존에 만들어져있는 function들 보면 다 = 로 되어있어서요 =0=;
툴에서 함수 생성 쿼리 보면 전부 = ..
3 비공개 손님 2016-07-22 23:05:59
단순한 감+해석인데요(PGSQL 모름) 파이썬처럼 indent 또는 구조완결 문제이라고 추측됩니다
C에서 main{ return 0; } 으로 쓰지 main { return 0; }; 으로 하면 에러나는 것 처럼요.

...
BEGIN
~~~~(if 구문)
~~~~RETURN ROLE_LIST;
END
$BODY$
...
4 비공개 손님 2016-07-26 04:53:45
3333333333333
5 비공개 손님 2016-07-27 18:59:40
답변 감사드립니닸!!
댓글을 작성하실 수 없습니다.
(권한이 없는 회원레벨)
목록으로
이용약관 | 광고/제휴 | 개인정보취급방침 | 문의/신고 | 모바일 TE31 | 서버 부하 : 17.5%
실시간 Issue 커뮤니티 TE31 [알지롱] ⓒ 2002-2021
TOP arrow_upward