一个关于merge的问题,高手请指教

zhangluheng 2006-10-24 07:26:02
我写了存储过程,里面用了merge方法,代码如下
MERGE INTO table1
USING (SELECT *
FROM table2
WHERE createtime BETWEEN begintime AND endtime) temp
ON (table1.ID = temp.ID)
WHEN MATCHED THEN
UPDATE
SET table1.VALUE = temp.VALUE
WHEN NOT MATCHED THEN
INSERT (ID, VALUE)
VALUES (temp.ID, temp.VALUE);
其中begintime和endtime是存储过程里的两个参数,编译没有错误,但运行总是提示错误,结果我把begintime和endtime变成两个'2006-01-01'这样的常量以后就运行成功了,但常量我就无法传参数了,不知道是什么原因,如何解决,请高手们指教.
...全文
291 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2006-10-25
  • 打赏
  • 举报
回复
估计日期型已转换了字符型,而字符型格式也不是yyyy-mm-dd
xiaoxiao1984 2006-10-25
  • 打赏
  • 举报
回复
程序传过来的时候还是日期类型的么,是不是被转换成字符串传过来了
zhangluheng 2006-10-25
  • 打赏
  • 举报
回复
是的,是日期类型,是从程序传到存储过程的两个参数
zhangluheng 2006-10-25
  • 打赏
  • 举报
回复
是日期类型的,我想问的是,会不会是merge语句的using里面不能带参数?
wangzk0206 2006-10-24
  • 打赏
  • 举报
回复
begintime AND endtime是日期类型的吗??

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧