我們有一個表,主鍵在表上由觸發器插入時填充 - 觸發器從我們爲表創建的序列中獲取下一個序列號,並將其用於插入鍵的值。現在我們希望能夠在插入過程(PL \ SQL)中返回該值,類似於在SQL Server中選擇@@ scope_identity。我一整天都在Google上搜索,基本上什麼都沒有提出 - 任何人都可以在此之前獲得成功?Oracle - 返回新插入的鍵值
謝謝
我們有一個表,主鍵在表上由觸發器插入時填充 - 觸發器從我們爲表創建的序列中獲取下一個序列號,並將其用於插入鍵的值。現在我們希望能夠在插入過程(PL \ SQL)中返回該值,類似於在SQL Server中選擇@@ scope_identity。我一整天都在Google上搜索,基本上什麼都沒有提出 - 任何人都可以在此之前獲得成功?Oracle - 返回新插入的鍵值
謝謝
我不知道,如果它的工作原理與觸發器,但返回的條款可能是你在找什麼:
INSERT INTO my_table (col_1, col_2)
VALUES ('foo', 'bar')
RETURNING pk_id INTO my_variable;
我認爲你正在尋找一個Callable Statement。如果您試圖從Java中獲得它,那麼這裏是javadoc。
這將正常工作,如果我們能在新創建的鍵填充輸出參數PL \ SQL - 這基本上是我在問題中提出的問題。在插入觸發器中填充密鑰 - 現在如何在插入存儲過程中獲取該密鑰? – 2009-07-17 19:52:21
爲什麼不只是返回the_sequence.currval?
不幸的是 - 序列被多個表使用。 – 2009-07-17 20:09:29
是的 - 這看起來很有趣,我會試試看。 – 2009-07-17 20:25:05