完全可以
例子:CREATE OR REPLACE PROCEDURE CM_PRO_EACH_LAYER
      (
       VAR_MON           IN VARCHAR2
      )
AS 
       ERROR_            VARCHAR2(100) ;
BEGIN
       ERROR_:='ERROR IN INPUT BASIC DATA!';
        
       DELETE FROM CM_EACH_LAYER_DETAIL
       WHERE  MON_DATE=VAR_MON         ;
       
       INSERT INTO CM_EACH_LAYER_DETAIL(
              MON_DATE                 ,
              ST_ID                    ,
              DES                      ,
              COST_CENTER              ,
              COST_TYPE                ,
              ID                       )
       SELECT VAR_MON                  ,
              ST_ID                    ,
              DES                      ,
              COST_CENTER              ,
              COST_TYPE                ,
              ID
       FROM   CM_LAYER_COST_CENTER     ;       ERROR_:='原物料,制造費用,直接人工成本金額計算出錯!';       UPDATE CM_EACH_LAYER_DETAIL A
       SET    A.DETAIL_1L=             
             (
              SELECT SUM(B.TOTAL_USE_AMOUNT)
              FROM   CM_PART_ST_MATERIAL_COST_SAVED B
              WHERE  B.MON_DATE=VAR_MON
              AND    B.ST_ID NOT IN ('RT')
              AND    B.COST_CODE NOT IN ('JB00','WGCOST')
              AND    SUBSTR(B.PART_ID,4,1)='1'
              AND    B.ST_ID=A.ST_ID
              AND    B.TYPE=A.COST_TYPE
             )
       WHERE  A.MON_DATE=VAR_MON
       AND    A.ST_ID NOT IN ('JB','WG','RT')
       AND    A.COST_TYPE IN ('原物料','制造費用','直接人工');