我來自Microsoft SQL環境。我有兩個表tak_ne
和tak_beb
,我的要求是將值從tak_beb
插入到tak_ne
如果值不存在,如果它存在只是更新。所以我做了一個合併聲明如下圖所示。但現在我面臨的問題是很快就會有50000計數正在增加序列號.Oracle是穩定的數據庫,我不知道他們爲什麼這樣做。所以我創建一個函數,並防止遞增序列number.My的問題是,它是通過創建一個function.Following正確的做法是我做的oracle中的合併語句問題
merge into tak_ne a using tak_beb b ON (a.NAME=b.NAME)
When matched then
Update
Set a.AC_NO = b.AC_NO
a.LOCATION = b.LOCATION
a.MODEL = b.MODEL
When not matched then
insert
(
sl_no,
AC_NO,
LOCATION
MODEL
)
Values
(
s_slno_nextval
b.AC_NO
b.LOCATION
b.MODEL
)
,然後我創建了一個功能
CREATE OR REPLACE FUNCTION s_slno_nextval
RETURN NUMBER
AS
v_nextval NUMBER;
BEGIN
SELECT s_emp.nextval
INTO v_nextval
FROM dual;
RETURN v_nextval;
END;
甲骨文12標識列 –