【ORACLE FOR UPDATE与FOR UPDATE OF区别】教程文章相关的互联网学习教程文章

oracle表关联update和表建立索引

update A a set a.A2 = (select b.B2 from B b where b.B1=a.A1) where exists (select 1 from B where B.B1=a.A1) -- Create/Recreate indexes create index t_source_phase_01 on t_source_phase (lineid) tablespace COMMON_CABLE pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); oracle表关联update和表建立索引标签:本文系统来源:http://...

Oracle update 日期

Sf_Msg_Monthly SET smm_Closed_Time = to_date(‘2011-12-30 11:54:30‘,‘yyyy-MM-dd HH24:MI:SS‘) WHERE smm_Monthlyid = 1; Oracle update 日期标签:本文系统来源:http://www.cnblogs.com/wangfuyou/p/5923271.html

2016.2.13 (年初六) oracle两张表update方法

A表customers和B表tmp_cust_city有3个相同字段, customer_id,city_name,customer_type 现要根据b表更新a表 更新一个字段情况: update customers a set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id) where exists (select 1 from tmp_cust_city b where b.customer_id=a.customer_id) //最后的where exists条件不可省,因为如果省去,就会更新a表中所有记录,但是a表中存在的b表中无法...

Oracle Update 语句语法与性能分析 - 多表关联【代码】

8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户类型 ... ) create unique index PK_customers on customers (customer_id) 由于某些原因,客户所在城市这个信息并不什么准确,但是在 客户服务部的CRM子系统中,通过主动服务获取了部分客户20%的所在 城市等准确信息,于是你将该部分信息提取至一张临时表中:SQL 代码create table tmp_cust_city ( customer_id n...

oracle批量update 转【代码】

update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a); 这种写法,会更新t1表中的所有行:如果t1.a=t2.a的,就更新t2中查出的记录进t1;如果t1.a<>t2.a的,t1中的记录会被更新成空(null)。 正确的写法:1 update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a) 2 where exists(select 1 from table_name_2 t2 where t1.a=t2.a); 解析: 正确的写法,就是...

Oracle 多表update

今天凌晨因为要在数据库里做一些操作,是关于两表关联的update,但语句怎么写都不正确,老是报错,于是心惊肉跳(就怕不能及时完成操作)去查了一下,NND,原来把SQL写成了在SQL Server下面的特有形式,这种语法在Oracle下面是行不通的,急忙改回来,及时完成了任务。顺便也把查到的SQL帖出来,哪天再忘记了,也好在这里找回来: update customers a set city_name=(select b.city_name from tmp_cust_city b where b.cus...

Oracle_insert_delete_update

--复制表格的结构 create table temp as (select * from emp where 1=2); select * from temp; --删除表 drop table temp; 插入--1.插入 新增 insert into temp(empno, ename, job, hiredate, sal) values(1234, ‘test张三‘, ‘programer‘, sysdate, 12000 ); insert into temp(empno, ename, job, hiredate, sal) values(1234, ‘张小夫老三‘, ‘programer‘, sysdate, 12000 ); insert into temp(empno, ename, job, hireda...

ORACLE FOR UPDATE与FOR UPDATE OF区别【代码】

declare 2 cursor emp_cur 3 is 4 select * from emp for update ; --锁定所有的行,只能读不能写 5 begin 6 for x in emp_cur loop 7 update emp set sal = 9999 where current of emp_cur ; 8 end loop ; 9 end ;2、SELECT * FROM EMP WHERE DEPTNO = 10 FOR UPDATE ; --只锁定DEPTNO = 10 的行 1 declare 2 cursor emp_cur 3 is 4 SELECT * FROM EMP WHERE DEPTNO = 10 FOR UPDA...

oracle Plsql 运行update或者delete时卡死问题解决的方法

在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本身拼写无误,可是出现plsql卡死的情况, 在代码中,运行sql的地方打断点debug,发现运行sql,仍然没有响应。经过网上查资料,推測导致这样的情况的原因是 可能在PLSQL Developer运行update时没有commit,oracle将该条记录锁住了。 能够通过下面办法解决: 先查询锁定记录 Sql代码 SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$ses...

Oracle 关联两表写update语句

两种方法: -- 方法1. UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS ( SELECT 1 FROM 表1 WHERE 表1.A = 表2.A) -- 方法2 MERGE INTO 表2 USING 表1 ON ( 表2.A = 表1.A ) -- 条件是 A 相同 WHEN MATCHED THEN UPDATE SET 表2.C = 表1.B -- 匹配的时候,更新Oracle 关联两表写update语句标签:using dex comm upd from set lin sel date 本文系...

Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果

:在查询语句后面写上for update,如:select * from 表名 for update; 解决办法2:在查询的列中使用rowid属性,如:select rowID, 表名.* from 表名; 另外,我们还可以通过下述办法来解决:在左侧选择要编辑的表,右键编辑数据,直接就能对数据进行编辑了,这时你会在SQL中看到如解决办法2一样的代码。Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果标签:color nbsp span ...

for update造成的Oracle锁表与解锁【代码】【图】

我遇到的情况: 当使用select语句查询表时,后面跟着for update ,select * from table for update当修改表中数据,但是没有commit就关掉PL/SQL,下次再打开,执行带for update的sql语句,就会卡死 一、锁表 查看锁表进程SQL语句: select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 如果有记录,可查到如下锁表记录 二、解锁 杀掉锁表进程: 记录下SID和serial# ,分别替换掉下面的1155,39...

ORACLE多表关联UPDATE 语句【代码】【图】

--1000以内的均是公司走向全国之前的本城市的老客户:) update customers set city_name=‘北京‘ where customer_id<1000 2) 两表(多表)关联update -- 仅在where字句中的连接SQL 代码 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type=‘01‘ --01 为vip,00为普通 where exists (select 1 from tmp_cust_city b where b.customer_id=a.customer_id ) 3) 两表(多表...

oracle for update锁表资源释放之kill -9和alter system kill session &#39;sid,serial#&#39;;

通过for update锁表,通过操作系统方式和oracle方式终止进程方式 --查询需要终止进程的情况,包括操作系统进程 select proc.sPID, sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess,v$process proc where ao.object_id = lo.object_id and lo.session_id = sess.sid and sess.PA...

[转]Oracle的update语句优化研究

本文系统来源:http://www.cnblogs.com/dirgo/p/7885625.html