사소한 실수를 하셨네요.
에러가 난 insert문 앞에 end가 있는데, 그걸 지우시면 될 겁니다.
이 end 때문에 전체 프로시저의 끝으로 인식한 거죠.
그럼..
왕초보 님이 쓰신 글 :
: 답변 주셔서 감사합니다.
: dialect도 3으로 해서 db를 다시 생성했고요.
: 님이 시키신대로
:
: SET TERM ^ ;
:
: CREATE PROCEDURE Acc0004_Save
: (
: jp010 char(10)
: , jp020 integer
: , jp030 char(3)
: , jp040 integer
: , jp050 char(1)
: , jp060 char(5)
: , jp070 varchar(6)
: , jp080 varchar(40)
: , jp090 numeric(18, 3)
: , jp100 varchar(30)
: , jp110 char(1)
: , jp120 varchar(30)
: , jp130 varchar(30)
: , jp140 char(1)
: , jp150 integer
: , jp160 varchar(100)
: )
: AS
: declare variable Max_Num integer;
: BEGIN
:
: select jp020 from acc0004 where jp010 = :jp010 and jp020 = :jp020 into :Max_Num;
: if ( Max_Num is not null) then
: delete from acc0004 where jp010 = :jp010 and jp020 = :jp020;
:
:
: select max(jp020) from acc0004 where jp010 = :jp010 into :Max_Num;
: if (Max_Num is null) then
: Max_Num = 1;
: else
: Max_Num = Max_Num + 1;
: end
:
: insert into acc0004 (jp010, jp020, jp030, jp040, jp050, jp060, jp070, jp080, jp090, jp100, jp110, jp120, jp130, jp140, jp150, jp160)
: values (:jp010, :Max_Num, :jp030, :jp040, :jp050, :jp060, :jp070, :jp080, :jp090, :jp100, :jp110, :jp120, :jp130, :jp140, :jp150, :jp160);
:
: SUSPEND;
: END^
: SET TERM; ^
:
: 이렇게 했더니 아래의 오류는 없어졌는데 다른 오류가 뜨는 군요.
:
: **********************************************
: Dynamic SQL Error
: SQL error code = -104
: Token unknown - line 32, char 1
: insert
: Statement: CREATE PROCEDURE Acc0004_Save
: (
: **************************************************
: 다시한번 봐주시겠습니까?
: 비번은 0000 입니다
:
: 박지훈.임프 님이 쓰신 글 :
: : 문법적인 에러는 없고...
: : 에러가 난 문장의 마지막에 있는 세미콜론(;)을 SQL문의 끝으로 인식한 것 같군요.
: : 아마도 데이터베이스 생성시에 dialect를 다르게 설정하신 것이 아닌가 싶네요.
: :
: : 다음과 같이 해보세요.
: :
: : 1. CREATE 문의 앞에 다음과 같이 추가
: : SET TERM ^ ;
: :
: : 2. 가장 마지막의 END 직후에 ^ 를 추가
: :
: : 3. 그 아래에 다음과 같이 추가
: : SET TERM ; ^
: :
: : 그럼..
:
|