2017-08-30 30 views
-2

我想要在Oracle SQL此過程:我想使這個過程在Oracle SQL

CREATE OR REPLACE PROCEDURE STS_OWNER.PRC_CAMBIO_LDC1 IS 
    CURSOR LDC1 IS 
      select CASE_NO 
      from ldc_cases 
      where case_no in (select barcode 
          from sts_tracking 
          where ldc='0' 
          and duplicated='0'); 
      FOR UPDATE BARCODE; 
    BARCODE VARCHAR2(50); 
BEGIN 
    OPEN LDC1; 
    FETCH LDC1 INTO BARCODE; 
    WHILE LDC1%FOUND LOOP 
     update sts_tracking 
     set ldc= 1 
     WHERE CURRENT LDC1; 
     FETCH LDC1 INTO BARCODE; 
    END LOOP; 
    CLOSE LDC1; 
    COMMIT; 
END; 
+1

而你的問題是? –

+0

這是正確的嗎? –

+1

那麼,當你試圖創建它,你有錯誤嗎? –

回答

-1

請格式化你的代碼,你可以使用Oracle蟾蜍客戶端或SQL開發人員創建並格式化存儲Proc .Below是相同的語法。

CREATE [OR REPLACE] PROCEDURE procedure_name 
    [ (parameter [,parameter]) ] 

IS 
    [declaration_section] 

BEGIN 
    executable_section 

[EXCEPTION 
    exception_section] 

END [procedure_name]; 
0

有沒有必要使用循環更新表。遊標只包含一個值(或者應該是因爲你將它提取到varchar變量中)。 ldc_cases中case_no是什麼類型?應該是varchar。