2017-08-09 22 views
1

我需要將branch_code設置爲IN參數,然後從表中選擇cms_rungno,cms_finayear並將cms_rungno分配給一個變量並將其值更新爲1.然後,按以下方式返回journ_no格式。從表中選擇值並使用Oracle中的函數更新它們

這是我迄今試過的代碼。我對此沒有清楚的想法。

FUNCTION GEN_JOURNO 
    (branch_code IN varchar2) 

    RETURN varchar2 IS 

    journ_no varchar2; 
    rungno number; 

BEGIN 
--LAST_NO + 1 
    SELECT cms_finayear 
    FROM corpinfo.tblcommonserial a 
    where cms_brncode=branch_code and cms_code='JOUN' 

    SELECT cms_rungno INTO rungno 
    FROM corpinfo.tblcommonserial a 
    where cms_brncode:=branch_code and cms_code:='JOUN'; 

    UPDATE corpinfo.tblcommonserial a 
    set cms_rungno:=rungno+1 
    where cms_brncode:=branch_code and cms_code:='JOUN' 
journ_no:=cms_brncode || SUBSTR(TO_CHAR(cms_finayear),3,2)|| LPAD(TO_CHAR(cms_rungno),6,'0'); 

    RETURN journ_no ; 
--EXCEPTION 
    --WHEN exception_name THEN 
     -- statements ; 
END; 
+0

您是否遇到過錯誤消息? –

+0

是的。這不能保存。它說發生內部錯誤。 – Didu

回答

0

這對我有用。在我以前的代碼中有語法錯誤

FUNCTION GEN_JOURNO 
     (branch_code IN varchar2) 

    RETURN varchar2(5) IS 

    journ_no varchar2(5); 
    rungno number; 

BEGIN 
--LAST_NO + 1 
    SELECT cms_finayear 
    FROM corpinfo.tblcommonserial a 
    where cms_brncode=branch_code and cms_code='JOUN'; 

    SELECT cms_rungno INTO rungno 
    FROM corpinfo.tblcommonserial a 
    where cms_brncode=branch_code and cms_code='JOUN'; 

    UPDATE corpinfo.tblcommonserial a 
    set cms_rungno=rungno+1 
    where cms_brncode=branch_code and cms_code='JOUN'; 
journ_no=branch_code || SUBSTR(TO_CHAR(cms_finayear),3,2)|| LPAD(TO_CHAR(cms_rungno),6,'0'); 

    RETURN journ_no ; 
--EXCEPTION 
    --WHEN exception_name THEN 
     -- statements ; 
END; 
+0

是的,你這樣做。 ;) –

相關問題