本人存盤程序小白,初次接觸,寫了個簡短的存盤程序,發現執行的時候報錯,大神們幫忙看下,到底是哪里出問題了。

create or replace PROCEDURE XX_P_ORL_ATT20_UPDATE(OR_GID IN VARCHAR2)
AS
CURSOR ORL_GID_CUR
IS
SELECT ORL.ORDER_RELEASE_LINE_GID
FROM ORDER_RELEASE_LINE ORL
WHERE ORL.ORDER_RELEASE_GID=OR_GID
ORL_GID_ROW ORL_GID_CUR%ROWTYPE;
BEGIN
FOR ORL_GID_ROW IN ORL_GID_CUR
LOOP
UPDATE ORDER_RELEASE_LINE ORL
SET ORL.ATTRIBUTE20=
(SELECT XORLE.EXTEND_TEXT1
FROM XX_ORDER_RELEASE_LINE_EXTEND XORLE
WHERE XORLE.ORDER_RELEASE_LINE_GID=ORL_GID_ROW.ORDER_RELEASE_LINE_GID
)
WHERE ORL.ORDER_RELEASE_LINE_GID=ORL_GID_ROW.ORDER_RELEASE_LINE_GID
END LOOP;
COMMIT;
END;
uj5u.com熱心網友回復:
發現執行的時候報錯具體的錯誤發上來,可能是陳述句法錯誤,也可能是語意錯誤 ;
uj5u.com熱心網友回復:
-- ORL_GID_ROW ORL_GID_CUR%ROWTYPE; 這行不要。BEGIN
FOR ORL_GID_ROW IN ORL_GID_CUR -- 這里直接使用就可以了,不用定義
uj5u.com熱心網友回復:
是的,具體錯誤要貼出來
uj5u.com熱心網友回復:
下午又檢查了一遍,發現存盤程序本身執行沒問題,但是在另外一個系統中呼叫就會報錯了。
問了一下同事,同事說是需要給存盤程序加同義詞,才能進行呼叫。
請問要怎么給上面那段存盤程序加同義詞啊?
uj5u.com熱心網友回復:
下午又檢查了一遍,發現存盤程序本身執行沒問題,但是在另外一個系統中呼叫就會報錯了。
問了一下同事,同事說是需要給存盤程序加同義詞,才能進行呼叫。
請問要怎么給上面那段存盤程序加同義詞啊?
uj5u.com熱心網友回復:
創建同義詞create
--or replace
synonym 同義詞名
for 表名;
注意:表名 你對應的用戶是那個,注意你的由查詢對應這個表的權限
舉例創建用戶user_a下的表 tab 同義詞 syn_tab
create or replace
synonym syn_tab for user_a.tab
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/106170.html
標籤:開發
