今天又遇到个问题 记下
工作时最主要用的就是sybase, oracle 数据库 就在update的时候出现了两者的不同
先说说我的场景: (这也是我最近做社保医保联网所用的,由于医院在上传病人医嘱信息的时候不能确定支付比例,必须在社保这边更新其支付比例 下面就拿两个表来说明下)
有两张表 A(ACOL,ACD,ARATIO), B(BCD,BRATIO)
需要把A表中的ARATIO修改为对应B表的BCD所对应的BRATIO
在sybse下,可以直接这样写
UPDATE A SET A.ARATIO=B.BRATIO
FROM B WHERE A.ACD=B.BCD
AND A.ACOL=?
在oracle 9下则却不支持 直接认为语法错误: ORA-00933: SQL command not properly ended
UPDATE A SET A.ARATIO=
(SELECT B.BRATIO FROM B WHERE B.BCD=A.ACD)
WHERE A.ACOL=?
AND EXISTS(SELECT * FROM B WHERE B.BCD=A.ACD)
记得不要犯低级错误: SELECT B.BRATIO FROM B WHERE B.BCD=A.ACD 这个只能返回一个结果
ORA-01427 这个错误就是他引起的
因为我虚拟出来的时候,不小心给了两个CD是一样的 :-)
分享到:
相关推荐
ORACLE UPDATE 语句语法与性能分析看法
实际项目中遇到的问题总结:数据量百万级,千万级。Oracle中update语句的优化,一共四种方案,工作中遇到该类问题可以参考。
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
oracle的updateoracoracle的update的五种方式le的update的五种方式的五种方式oracle的update的五种方式
例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...
在某个业务受理子系统BSS中, --客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户...
shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...
oracle 多表做update insert语句.docx
本篇文章是对mysql与Oracle update的区别进行了详细的分析介绍,需要的朋友参考下
ORACLE批量更新四种方法.txt ORACLE批量更新四种方法.txtORACLE批量更新四种方法.txt ORACLE批量更新四种方法.txt
在oracle数据据库中批量插入数据的java方法
oracle千万级别数据简单操作
数据库oracle锁: for update of和for update的区别,解释得很清楚,有很多详细例子说明。
用SSH框架+Oracle数据库,实现增删改查,添加数据就可以直接运行
ORACLE日期时间函数大全
ORACLE_UPDATE_语句语法与性能分析
oracle中的子查询使用场合,种类,使用方法,错误排除
Oracle数据库分区表操作方法Oracle数据库分区表操作方法
利用windows系统计划任务执行oracle数据库批处理备份,带源文件,可以看看....