SqlServer的这条语句怎么改成oracle能用的

caomengjida2 2016-09-08 09:39:03
大致需求是这样的,判断一条记录在数据库中是否存在,存在的话就更新一下,不存在就插入。并且最后需要返回执行的结果,使用select将执行过程中保存的一些状态信息查询出来,返回结果集给调用程序。但是不能定义变量实现,不能使用declare,不能使用oracle特有的语法。 sql语句是调用程序传给数据库的,使用特有语法,调用程序会报错。调用程序是java的,而且调用程序是不允许修改的。

if exists(select * from PurchBalanceBill where FID = 1014)
Begin
update PurchBalanceBill set Fnumber = '00000014',BanlancePrice = '153.0',
CancelNum = '2.0',FDescription = '123'
where FID = 1014
End
Else
Begin
insert into PurchBalanceBill( FID,Fnumber,BanlancePrice,CancelNum,FDescription)
values ('KaRA8EO/Qe6OX/4w8n29N5eCbbY=','00000014','153.0','2.0','123')
End

........

select * from result

...全文
495 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
js14982 2016-09-08
  • 打赏
  • 举报
回复
MERGE INTO PurchBalanceBill T1
USING (select * from PurchBalanceBill where FID = 1014) T2
ON ( T1.FID=T2.FID)
WHEN MATCHED THEN
    update PurchBalanceBill set Fnumber = '00000014',BanlancePrice = '153.0',
CancelNum = '2.0',FDescription = '123'
WHEN NOT MATCHED THEN 
    insert into PurchBalanceBill( FID,Fnumber,BanlancePrice,CancelNum,FDescription)
values ('KaRA8EO/Qe6OX/4w8n29N5eCbbY=','00000014','153.0','2.0','123') ;
js14982 2016-09-08
  • 打赏
  • 举报
回复
用merge 语句
ghx287524027 2016-09-08
  • 打赏
  • 举报
回复

17,086

社区成员

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

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