2013-02-06 25 views
0

我創建了一個參數列表並添加了一些參數,但是當我想檢查參數及其值是否已經添加時,它不能獲得我剛添加的值。代碼有什麼問題:如何檢查Oracle PL/SQL中的參數列表值?

IF NOT ID_NULL(GET_PARAMETER_LIST('RPT')) THEN 
    DESTROY_PARAMETER_LIST('RPT'); 
END IF; 
v_param_list := CREATE_PARAMETER_LIST('RPT'); 

ADD_PARAMETER(v_param_list,'PAR_WHERE',TEXT_PARAMETER,'WHERE ID = 1010'); 

BEGIN 
    GET_PARAMETER_ATTR(v_param_list,'PAR_WHERE',v_param_type,v_temp); 
    message('PAR_WHERE:'||v_temp); 
EXCEPTION WHEN OTHERS THEN 
    message('Couldn''t get the value for : PAR_WHERE'); 
END; 

如何檢索參數列表中的所有參數和值?

+0

TEXT_PARAMETER填充在哪裏? @Ben:顯然這些是標準的Oracle Forms功能。 – winkbrace

回答

0

正如GriffeyDog所說,沒有辦法檢索參數列表項。我有同樣的問題,並通過使用數據庫解決它。唯一的方法是使用解決方法。 我的解決方案是在參數列表中傳遞一個ID。此ID代表一個pl/sql集合。一旦檢索到ID很容易獲得所有收集鍵或值。 如果你需要更多的細節讓我知道,因爲代碼是多年.....

+0

你是對的,這段代碼是針對Oracle表格的,我使用參數列表來傳遞值。最後由全局變量替換。 – Frank

0

我沒有看到你在哪裏定義了v_param_typev_tempv_param_type需要是一個數字並v_temp一個varchar2,他們都是out參數。

不幸的是,沒有辦法從ParamList中檢索所有參數,而無需事先知道其中包含的參數的名稱。

+0

我定義了v_param_type和v_temp,只是沒有打印出來。這裏的問題很奇怪,除了定義v_param_type和v_temp之外,還有其他問題嗎? – Frank