2011-09-07 3 views
1

IBM Informix Dynamic Server 버전 11.50.FC6Informix SQL -이 간단한 저장 프로 시저에 무엇이 문제가 있습니까? 구문을 트리거합니까?

업데이트 트리거 내에서 간단한 저장 프로 시저를 실행하려고합니다. 함께, 이들은 동일한 행의 다른 필드가 갱신 될 때 현재 시간 소인으로 필드를 갱신하는 데 사용됩니다.

sp_test :

id   (serial int, unique, not null, primary key)  
stat  (char(1), not null, default="A") 
add_date (date, not null, default today) 
upd_date (date, null) 

저장 프로 시저 코드는 다음과 같습니다이 잘 실행하고 루틴을 생성하지만

create procedure upd_row_date_proc (cid int) 
update sproc_trig_rec set upd_date = current where id = cid; 
end procedure; 

내가 업데이트를 구현하기 위해 노력하고 트리거가 작동하지 않습니다.

create trigger upd_row_date_trig 
update of stat on sproc_trig_rec 
after (execute procedure upd_row_date_proc(id)); 

내가 구문 변화의 무리를 시도했지만,이 동작하지 않습니다 :

트리거 코드입니다.

나는 보통 내 오류를 제 3 행의 ( 문자로받습니다. 다음은 오류 코드입니다.

201: A syntax error has occurred. 
Error in line 3 
Near character position 0 

트리거의 구문에서 내가 잘못된 것을 알고있는 사람이 있습니까? 이 유형의 업데이트를 테이블 생성시 정의 할 수 있습니까? 아니면 위에서 설명한 방법으로 수행해야합니까? 이것은 결국 나를 위해 일한 도움

+1

- 시도하십시오 :'DBINFO SELECT ('버전', '전체') "Informix는".systables FROM 어디 tabid = 1'. –

+0

IBM Informix Dynamic Server 버전 11.50.FC6 – CheeseConQueso

답변

2

에 대한

덕분에 그것은 9.53하지

create trigger ken_trig 
update of stat on sproc_trig_rec 
referencing old as ken_pre_upd 
for each row (execute procedure ken_proc(ken_pre_upd.id)); 
+1

예 - 트릭을 수행하는 구문 중 하나입니다. 그것은 아마도 당신이 한 일일 것입니다. [CREATE TRIGGER] (http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp?topic=%2Fcom.ibm.sqls.doc%2Fids_sqs_0584.htm) 및 다음 페이지를 참조하십시오. –

+0

링크 주셔서 감사합니다. – CheeseConQueso

관련 문제