2
我想通過Scala中的Slick運行查詢,該查詢會將記錄插入Oracle數據庫並返回自動生成的ID作爲結果。我發現這可以使用Slick的語法,但這可能使用普通的SQL查詢嗎?用下面的代碼,我只能得到-1的返回值。Slick/Oracle PLAIN SQL在插入後獲取自動生成的ID
val name = "Bob"
db.run(sql"""DECLARE NEW_PERSON_ID;
BEGIN
INSERT INTO TB_PEOPLE (ID, NAME)
VALUES(SEQ_PEOPLE.NEXTVAL, $name)
RETURNING ID INTO NEW_PERSON_ID;
END;""".as[Int])
我認爲它更從Oracle的語法問題,請從Atilla [這裏](http://stackoverflow.com/questions/34811283/retrieve-oracle-last-inserted-identity) –
部分檢查答案問題在於你的'declare new_person_id'缺少一個數據類型(可能是'tb_people.id%type'),所以這個塊無法編譯,也許這就是-1。但修復不會返回任何東西給調用者(我不知道斯卡拉)。 –