我有一个INSERT / UPDATE过程,当我更改现有的“名称”时,它似乎只会更新。
我在java中添加了一个代码字段,并且想要将代码更新到现有表而不必修改“name”,因为它已经存在。如果我修改“名称”,那么“代码”将更新到表中的那一行。
有人可以帮助我了解最新情况或需要修改的内容吗?
感谢
PROCEDURE update_things
(things IN OUT things_bean, user_id IN NUMBER)
IS
t_things things_bean;
BEGIN
-- If there is already an id set ... this is an update
IF things.ID <> 0
THEN
SELECT things_bean (ID, NAME, code, work, foo)
INTO t_things
FROM things
WHERE things.ID = ID;
IF NOT things.equals (t_things)
THEN
things.foo:= t_things.foo;
things.foo.modified_date := SYSDATE;
things.foo.modified_by := user_id;
UPDATE things
SET NAME = things.NAME,
code = things.code,
foo= things.foo
WHERE ID = things.ID;
END IF;
END update_things;
答案 0 :(得分:1)
我觉得你应该看看这个电话:
things.equals(t_things)
确保您的代码值是等式检查的一部分。