觸發trigger後的字串大小如何一致? |
答題得分者是:chinyu
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
各位前輩:
小弟在interbase中建立了一個tirggers,但建立一筆資料後,卻無法讓欄位中的字串長度固定. 小弟要的字串長度為12(4碼年份,2碼月份,2碼日期,4碼流水號),但寫入字串長度卻為8碼(ex.今天新增資料,寫入字串為"20086251"), 請問小弟應該要如設定triggers呢?謝謝!! triggers內容如下: CREATE TRIGGER LOC_EXCHANGE_BI0 FOR LOC_EXCHANGE ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.EXCHANGE_ID =CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS VARCHAR(4))|| CAST(EXTRACT(MONTH FROM CURRENT_DATE) AS VARCHAR(2))|| CAST(EXTRACT(DAY FROM CURRENT_DATE) AS VARCHAR(2))|| CAST(GEN_ID(gen_exchange1_id,1) AS VARCHAR(4)); NEW.EXCH_DATE = current_timestamp; end |
chinyu
高階會員 發表:12 回覆:157 積分:153 註冊:2002-06-14 發送簡訊給我 |
[code sql]
CREATE OR ALTER trigger job_bi0 for job active before insert position 0 AS DECLARE VARIABLE sJobNo VARCHAR(10); /*編號*/ DECLARE VARIABLE iSeq integer; /*序號*/ begin /*取建檔日期的編號最大值*/ SELECT MAX(JobNo) FROM job where CreDate=new.CreDate INTO :sJobNo; if (sJobNo is null) then begin iSeq = 1; /*無這日期的最大編號時,序號為 1*/ end else begin iSeq = cast(substr(sJobNo,8,10) as integer) 1; /*序號加 1 */ end /*例:0930514001 三位數民國年 兩位數月份 兩位數日 三位數序號*/ NEW.JobNo= substr(CAST(EXTRACT(YEAR FROM new.CreDate)-911 AS VARCHAR(4)),2,4)|| /*取年*/ substr(CAST(EXTRACT(MONTH FROM new.CreDate) 100 AS VARCHAR(3)),2,3)||/*取月*/ substr(CAST(EXTRACT(DAY FROM new.CreDate) 100 AS VARCHAR(3)),2,3)|| /*取日*/ substr(cast(iSeq 1000 as VARCHAR(4)),2,4); /*加1000是為前面補 0,取序號*/ update Make set JobOK='Y' where Makid=new.Makid; update item set stockqty_half = stockqty_half new.stockqty_half where ItemNo=new.itemno; end[/code] 請參考,取兩個數就加100,再換為字串,取後兩碼即可,其餘以此類推。
編輯記錄
chinyu 重新編輯於 2008-06-28 23:28:14, 註解 無‧
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
|
chinyu
高階會員 發表:12 回覆:157 積分:153 註冊:2002-06-14 發送簡訊給我 |
這是我自已資料庫的table名稱,資料庫、欄位名稱請自行取代為你資料庫上的名稱
===================引 用 mingking0947 文 章=================== 感謝前輩詳細的回覆triggers內容, 但小弟在ibexperts的sql edit中下會出現"unknown Make". 請問"Make"及"Item"是內建關鍵字?或資料庫中的那個欄位? 謝謝!! |
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |