ORACLE 存储过程根据主键PROCESSID,用表FORM_MASTER_INFO_GW_DATE更新表FORM_MASTER_INFO_GW
时间: 2023-08-06 09:03:41 浏览: 66
你可以使用以下的Oracle存储过程来实现根据主键PROCESSID,使用表FORM_MASTER_INFO_GW_DATE来更新表FORM_MASTER_INFO_GW:
```sql
CREATE OR REPLACE PROCEDURE UPDATE_FORM_MASTER_INFO_GW (
p_PROCESSID IN FORM_MASTER_INFO_GW.PROCESSID%TYPE
)
IS
BEGIN
UPDATE FORM_MASTER_INFO_GW F
SET (F.COLUMN1, F.COLUMN2, F.COLUMN3) =
(SELECT G.COLUMN1, G.COLUMN2, G.COLUMN3
FROM FORM_MASTER_INFO_GW_DATE G
WHERE G.PROCESSID = p_PROCESSID)
WHERE F.PROCESSID = p_PROCESSID;
COMMIT;
DBMS_OUTPUT.PUT_LINE('Update completed successfully.');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('Error updating the table: ' || SQLERRM);
END;
/
```
这个存储过程接受一个名为p_PROCESSID的输入参数,然后使用FORM_MASTER_INFO_GW_DATE表中与给定PROCESSID匹配的数据更新FORM_MASTER_INFO_GW表中的对应记录。最后,将更改提交,并打印出更新成功的消息。如果在更新过程中出现错误,将回滚更改并打印出错误消息。