【发布时间】:2014-10-09 03:30:10
【问题描述】:
我正在制作一个在两个表之间同步值的 oracle 函数,我的目的是显示一个字符串,该字符串显示受影响的行数并在用户执行该函数时显示它。
我的函数创建是这样的
CREATE OR REPLACE FUNCTION WELTESADMIN.DUM_MST_SYNC(PROJNAME IN VARCHAR2)
RETURN NUMBER IS NUM_ROWS NUMBER;
BEGIN
MERGE INTO MASTER_DRAWING DST
USING (SELECT WEIGHT_DUM, HEAD_MARK_DUM FROM DUMMY_MASTER_DRAWING) SRC
ON (DST.HEAD_MARK = SRC.HEAD_MARK_DUM)
WHEN MATCHED THEN UPDATE SET DST.WEIGHT = SRC.WEIGHT_DUM
WHERE DST.PROJECT_NAME = SRC.PROJECT_NAME_DUM
AND DST.PROJECT_NAME = PROJNAME;
dbms_output.put_line( sql%rowcount || ' rows merged' );
END;
如果我在 TOAD 或 SQL Developer 中执行开始部分,我可以看到有多少行受到影响。我的目标是将这个函数收集到一个过程中,当用户想要同步表时,他们只需要使用为特定项目提供的 PROJNAME 值运行该过程。
请帮助我如何改进此代码, 最好的问候
【问题讨论】: