如題,需要的是簡單一個查字典功能,如果查不到字典,則將當前項當字典內容錄入,最后回傳字典 id
總想寫成function,但是里面沒有commit; 就會拋例外并自動回滾。后來被迫寫成帶 out 引數的 procedure 。。
CREATE OR REPLACE FUNCTION TRMS.f_address_getId(p_name in VARCHAR2)
RETURN number IS PRAGMA AUTONOMOUS_TRANSACTION;
v_id number := 0;
BEGIN
for v_t in (select * from RM_ADDRESS where NAME = p_name) loop
v_id := v_t.id;
exit;
end loop;
if v_id = 0 then
v_id := s_seq.nextval;
insert into ADDRESS
(ID,
Name)
values
(v_id,
p_name);
--commit;
end if;
RETURN v_id;
END f_address_getId;
uj5u.com熱心網友回復:
帶 DML 的函式,在呼叫時,用以下方法,可以實作你的需求:x := fn();
insert into t values ...
commit;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/103442.html
標籤:開發
上一篇:求幫助,oracle使用sqlldr匯入多個txt到一個表,希望實作表中一個欄位LY(來源)根據不同的txt,賦不同的默認值。
下一篇:資料庫問題著急求大神
