插入合并在Oracle中不起作用
我是甲骨文的新手。我在Oracle中有一个表,它有4列Period、Open_Flag、Creation_Dt和Update_By。 句点列是表的主键。我已经创建了一个proc,它将检查表中输入参数的period值,如果它存在,则必须更新Open_标志的值,否则将插入一条新记录。 创建或替换 程序过程参考期 数字为V_期间,VARCHAR2中的V_打开标志,日期为V_创建,VARCHAR2中的V_更新 像 开始 合并到参考周期T中 使用SELECT*FROM REF\U SAP\U PERIOD,其中PERIOD=V\U PERIOD S T.周期=S.周期 匹配后,更新集打开标志=V_打开标志-其中周期=V_周期和创建时间=V_创建时间,更新时间=V_更新时间 如果不匹配,则插入期间、打开\u标志、创建\u DT、按值更新\u期间、打开\u标志、创建\u DT、更新\u依据; 终止插入合并在Oracle中不起作用,oracle,merge,upsert,Oracle,Merge,Upsert,我是甲骨文的新手。我在Oracle中有一个表,它有4列Period、Open_Flag、Creation_Dt和Update_By。 句点列是表的主键。我已经创建了一个proc,它将检查表中输入参数的period值,如果它存在,则必须更新Open_标志的值,否则将插入一条新记录。 创建或替换 程序过程参考期 数字为V_期间,VARCHAR2中的V_打开标志,日期为V_创建,VARCHAR2中的V_更新 像 开始 合并到参考周期T中 使用SELECT*FROM REF\U SAP\U PERIOD
问题是,在这种情况下,更新工作正常,但是插入不起作用。请帮忙 您正在将表与自身合并,并按时段进行筛选。显然,它永远不会看到你不存在的价值观 请尝试此行,而不是使用以下行:
using (select V_PERIOD "period" from dual)S
请发短信。说我想帮助你;如果你发布了一些文字,我可以很容易地复制代码,尝试并编辑它;如果你发布了一张图片,我只是投票结束这个问题。抱歉@Aleksej…我现在更新了这个问题。谢谢@Alexander,你刚刚救了我一天。非常感谢。