2012-03-20 94 views
0

我在它下面創建了一個包和存儲過程來測試併發程序。當我將它作爲Oracle報告可執行方法運行時。它工作正常。但是我將它改爲PL/SQL存儲過程,然後給出錯誤。Oracle併發編程執行方法

原因:FDPSTP由於失敗ORA-06550:第1行,第7列:PLS-00306: 錯誤數量或類型的在調用 'pop_rpt_tbl' ORA-06550參數: 第1行,第7列: PL/SQL:語句被忽略

它在oracle報告方法中正常工作。

關於這個問題的任何想法。

This is my sp 
PROCEDURE pop_rpt_tbl (
     p_pro_id IN  NUMBER, 
     p_agr  IN  NUMBER, 
     p_prd  IN  NUMBER, 
     p_group_id  IN  NUMBER, 
     x_api_status OUT  VARCHAR2, 
     x_api_msg  OUT  VARCHAR2 
    ); 

當我執行這是一個PL/SQL我給包name.pop_rpt_tbl作爲文件名和可執行文件作爲包名。

+2

你應該張貼的代碼中的相關片段... – 2012-03-20 07:59:06

回答

2

當您創建要作爲併發請求運行的打包過程時,應該將可執行文件定義爲PL/SQL,並指定schema.package.procedure作爲可執行文件名。

接下來,您的打包程序的前兩個參數必須爲errbuf OUT VARCHAR2, retcode OUT NUMBER。併發進程期望這一點;你們自己的論點應該在這之後出現。因此,一個原型包裝規程將類似於:

PROCEDURE create_manual_batch (
    errbuf OUT VARCHAR2, 
    retcode OUT NUMBER, 
    p_part_id IN VARCHAR2, 
    p_quote_line_id IN VARCHAR2, 
    p_parent_id IN VARCHAR2 DEFAULT '0'); 

您可以使用errbufrecode在代碼中有用的信息發送迴應用程序。你可以傳遞一個錯誤信息字符串errbuf將寫入日誌文件,你可以在你的程序,以顯示在EBS併發請求的形式成功或失敗或錯誤設置RETCODE:

  • 0 =正常
  • 1 =警告
  • 2 =錯誤
+0

感謝您的回覆,我沒有任何你這裏提到的..改變可執行文件的名稱和procudure ..首先,我得到了不完全特權的錯誤來執行。然後我授予permition.still我有這個問題。 – LaknathR 2012-03-21 07:14:15

+0

@ user361045您不必更改可執行文件的名稱,我只是舉了一個例子。在你的情況下,你的可執行文件名是'pop_rpt_tbl'。你在什麼模式下創建你的程序?應用?還是另一種架構?如果您沒有在應用程序中創建您的過程,那麼您將需要'授予對應用程序的pop_rpt_tbl執行'。當您將可執行文件名稱列爲'myschema.pop_rpt_tbl'時,您還應該指定模式名稱。 – Wolf 2012-03-22 01:53:34