문법적인 에러는 없고...
에러가 난 문장의 마지막에 있는 세미콜론(;)을 SQL문의 끝으로 인식한 것 같군요.
아마도 데이터베이스 생성시에 dialect를 다르게 설정하신 것이 아닌가 싶네요.
다음과 같이 해보세요.
1. CREATE 문의 앞에 다음과 같이 추가
SET TERM ^ ;
2. 가장 마지막의 END 직후에 ^ 를 추가
3. 그 아래에 다음과 같이 추가
SET TERM ; ^
그럼..
왕초보 님이 쓰신 글 :
: 델5에 인터베이스 6.01 서버를 사용하고 설치후 다른작업(함수 추가 등)은 한것이 없습니다.
: Ibconsole에서 Interactive SQL에서 다음프로시저를 만들었는데요.
: 오류가 있다고 하는데 도저히 모르겠습니다.
:
: 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; <--- 요기서 오류
: *****************************************************
: Dynamic SQL Error
: SQL error code = -104
: Unexpected end of command
: 이고요
: *****************************************************
: 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
:
: 프로시저에 이상이 있는것 같은데 도저히 몰겠습니다.
: 설명 좀 부탁드리겠습니다...
|