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。但修复不会返回任何东西给调用者(我不知道斯卡拉)。 –