Oracle使用merge into 编写存储过程 遇编译错误:PL/SQL: ORA-00926: 缺失 VALUES 关键字

createorreplaceprocedureSaveServiceTime(in_iWorkgroupIDvarchar2,in_dtDayStartTimedate... create or replace procedure SaveServiceTime(
in_iWorkgroupID varchar2,
in_dtDayStartTime date,
in_dtDayEndTime date,
in_dtWeekendStartTime date,
in_dtWeekendEndTime date
) as
begin
merge into CTIL_ServiceTime t1
using (select count(*) co from t1 where t1.iWorkgroupID=in_iWorkgroupID) tmp
on (tmp.co<>0)
when matched then
update
set t1.dtDayStartTime=in_dtDayStartTime,t1.dtDayEndTime=in_dtDayEndTime,t1.dtWeekendStartTime=in_dtWeekendStartTime,t1.dtWeekendEndTime=in_dtWeekendEndTime
where t1.iWorkgroupID=in_iWorkgroupID
when not matched then
insert into t1(iServiceTimeID,iWorkgroupID,dtDayStartTime,dtDayEndTime,dtWeekendStartTime,dtWeekendEndTime)
values(CTIL_SERVICETIME_SEQID.NEXTVAL,in_iWorkgroupID,in_dtDayStartTime,in_dtDayEndTime,in_dtWeekendStartTime,in_dtWeekendEndTime);
commit;
end;
展开
 我来答
帐号已注销
高粉答主

2020-04-02 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:38.3万
展开全部

Oracle使用merge into 编写存储过程 遇编译错误,是设置错误造成的,解决方法如下:

1、首先新建存储过程,Create or Replace  Procedure CHK_SYS_EMP 检查系统工号。

2、定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。

3、存储过程框架用Begin开始,End结束。

4、查看需要调用表的结构以及相关字段。会用到表中的 EMP_NO ENABLED。

5、存储过程按需添加SQL语句,最后程序运行测试没问题就完成了 。

ftw317
推荐于2016-03-08 · TA获得超过886个赞
知道小有建树答主
回答量:215
采纳率:50%
帮助的人:191万
展开全部
when not matched then
insert into t1 这里不能用INTO T1语法都错误,直接INSERT VALUES()括号里填相应的字段,如果没有给空值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-18
展开全部
把你的这段
when not matched then
insert into t1(iServiceTimeID,iWorkgroupID,dtDayStartTime,dtDayEndTime,dtWeekendStartTime,dtWeekendEndTime)
values(CTIL_SERVICETIME_SEQID.NEXTVAL,in_iWorkgroupID,in_dtDayStartTime,in_dtDayEndTime,in_dtWeekendStartTime,in_dtWeekendEndTime)
改成
when not matched then
insert values(CTIL_SERVICETIME_SEQID.NEXTVAL,in_iWorkgroupID,in_dtDayStartTime,in_dtDayEndTime,in_dtWeekendStartTime,in_dtWeekendEndTime);试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7693d9fd
2012-04-16 · TA获得超过292个赞
知道小有建树答主
回答量:801
采纳率:0%
帮助的人:236万
展开全部
那里出错了?
更多追问追答
追问
就是提示编译错误:PL/SQL: ORA-00926: 缺失 VALUES 关键字
追答
values 的意思是值的意思!你看一下你的语句那里少了或者设置错误了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式