看板 Database 關於我們 聯絡資訊
各位好 小弟有三支寫好的stored porcedure 分別是 DROP_AND_CREATE_TABLE(); --刪除並重建Table INSERT_EXPENSE(Mon); --新增資料到Expense Table INSERT_SALES(Mon); --新增資料到Sales Table 原先的構想是 再寫一支stored procedure把這三個兜成一支....XDD 步驟就是先執行把原有的Table drop後,再Create,然後再新增資料 原始程式如下: create or replace PROCEDURE UPDATE_DATA IS BEGIN DROP_AND_CREATE_DATA_TABLE(); FOR Mon IN 1..12 LOOP INSERT_EXPENSE(Mon); INSERT_SALES(Mon); END LOOP; END UPDATE_DATA; 但是事情並不像憨人我想的那麼簡單....囧rz 執行時的錯誤訊息如下: ORA-04068: 套裝程式 的現行狀態已被捨棄 ORA-04065: 未執行, 更改或刪除 stored procedure "ODS.INSERT_EXPENSE" ORA-06508: PL/SQL: 找不到正在呼叫的程式單元: "ODS.INSERT_EXPENSE" ORA-06512: 在 "ODS.UPDATE_DATA", line 6 ORA-06512: 在 line 2 但是程式改成只刪除Table可以成功 create or replace PROCEDURE UPDATE_DATA IS BEGIN DROP_AND_CREATE_DATA_TABLE(); END UPDATE_DATA; 或是只新增資料也可以成功 create or replace PROCEDURE UPDATE_DATA IS BEGIN FOR Mon IN 1..12 LOOP INSERT_EXPENSE(Mon); INSERT_SALES(Mon); END LOOP; END UPDATE_DATA; 但是請問諸位要怎樣改寫才能一起執行呢.....>"< 謝謝<(_ _)> -- 親愛的朋友 你今天過的如何呢?? 有沒有開開心心快快樂樂的阿 無論發生什麼事希望你每天都能笑的很開心喔 笑一個吧 ^__________________________________________________^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.7.130
daniel1205:為什麼要 DROP 掉呢? Truncate Table 不行嗎? 11/10 23:44
Catbert:因為程式之後是要給別人執行的....= =|| 11/11 08:06
roywu607:其實你可以用 global TEMPORARY table 11/11 12:04