2017-02-15 62 views
0

對於所有這些問題抱歉抱歉。使用If語句更新表格的PL/SQL代碼

我有一個下拉列表,用戶可以選擇各種動作類型。

樣品:(:P6_Action_ind)

完全接受

部分接受

衰落/默認

如果用戶選擇完全承認我要更新ca_offer表(Accept_shares)柱,用來自(offer_shares)專欄的原始要約金額。

我試圖做到這一點的一個過程點(在提交)

if :P6_ACTION_IND = 'FULL ACCEPTANCE' then 
    update ca_offer 
    set accept_shares = offer_shares 
    where seq_id = :P6_SEQ_ID; 
end if; 

回答

0

檢查選擇列表項的值VS描述性文本。該值是會話狀態中設置的值,應該用作代碼中的文字字符串。

LOV將顯示一個值,並存儲一個不同的值 - 因此select語句中有兩列。您需要確保第二列(存儲值)處於會話狀態(運行時底部的開發人員工具欄上的按鈕),並與PL/SQL中硬編碼的任何內容匹配。

+0

有道理,需要弄清楚如何編碼,因爲該值來自另一個表。 – Kokapellie

+0

這裏是我使用的彈出代碼{從CA_OFFER_ACTION WHERE OFFER_NAME =選擇OFFER_ACTION_DESC d,OFFER_ACTION_DESC [R :P6_OFFER_TYPE} – Kokapellie

+0

嗨斯科特所以我檢查了現場並沒有重視,所以我需要從其他包含的東西表格我在哪裏得到的價值。但是我對PL/SQL仍然很陌生我不確定如何調用我用來創建POV到更新的相同數據 – Kokapellie

0

好吧,也許我需要嘗試解釋我想要做的更好。

我有一個頁面項目(:P6_Action_ind)是從(LOV) LOV下拉:

Select OFFER_ACTION_DESC D, OFFER_ACTION_DESC R 
FROM CA_OFFER_ACTION 
WHERE OFFER_NAME = :P6_OFFER_TYPE 

的LOV包含很多動作的客戶端可以採取,但這裏有幾個:

完全接受

部分接受

衰落/默認

現在,如果他們選擇完全的接納我需要更新一個表(CA_OFFER)

if :P6_ACTION_IND = 'FULL ACCEPTANCE' then 
    update ca_offer 
    set accept_shares = offer_shares 
    where seq_id = :P6_SEQ_ID; 
end if; 

但它似乎是「完全接受」是不是在提交時間的值。

+0

我想'更新ca_offer一 集(accept_shares)=(從CA_OFFER一個SELECT A.OFFER_SHARES ,CA_OFFER_ACTION乙 其中B.OFFER_ACTION_DESC = 'FULL ACCEPTANVCE');'但沒有工作.. – Kokapellie

+0

人沒有幫助在這裏.. :( – Kokapellie

0

我試圖更新ca_offer一組(accept_shares)=(SELECT從> CA_OFFER A,CA_OFFER_ACTION乙A.OFFER_SHARES其中B.OFFER_ACTION_DESC = 'FULL ACCEPTANVCE'); >但沒有奏效..

您可能試圖從表ca_offer對應'FULL ACCEPTANCE'對應的列offer_shares。

您在ACCEPTANVCE中輸入了錯字 ,並且更新應通過查詢表返回一行和一列的子查詢來獲取accept_shares的值。

update ca_offer 
set accept_shares = (
    select offer_shares 
    from ca_offer_action 
    where OFFER_ACTION_DESC = 'FULL ACCEPTANCE' 
) 
where seq_id = :P6_SEQ_ID 

見Subquery3在Oracle documentation

但是話說回來,你應該首先選擇的基準字段中的LOV在R字段(d =說明,R =參考)

Select OFFER_ACTION_DESC D, offer_shares R 
FROM CA_OFFER_ACTION 
WHERE OFFER_NAME = :P6_OFFER_TYPE 
+0

嗨D,這個問題是,OFFER_ACTION_DESC是在不同的表,然後OFFER_SHARES。是的,我看到了錯字,並修復它,但仍然沒有可能得到表更新 – Kokapellie

+0

我似乎有一些其他問題,因爲我想檢查,如果更新聲明甚至會觸發..這是一個很大的NOPE。現在我沒有建立這個應用程序,它使用(DML)會影響我的PL/SQL更新後提交? – Kokapellie