大家好 上周写了匿名方法一文,很多读者,很高兴,相信我们已经从大伙的回复中,对.NET又有了更深刻的认识. 好,现在说主题,各类数据库都有相应更新本表top n的方案.现在我一一举例 首先看表结构如下: 数据库以及表创建命令初始化数据库语句 CREATE TABLE student( id ) NOT NULL, name ) NULL, age int NULL) ); ); ); ); ); ); ); ); ); ); 表格结构如下: ID Name Age 001 wfg 20 002…
匿名方法是.NET 3.5之后的一个好东东,很多人使用,但是我在最近的工作当中发现了一个问题. 请专家解答 //list里存放10个数字 List<); ; i < ; i++) { list.Add(i); } //10个数字,分成10组,其实每组就一个元素,每组的元素是不相同的 Dictionary<int, List<int>> dict = new Dictionary<int, List<int>>(); ; i < ; i++)…
1. oracle for update和for update nowait的区别 http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录…
前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP...ORDER BY 我们利用AdventureWorks2012实例数据库来演示,一般情况我们如下一次性更新所有数据,如下: SELECT * FROM Production.Product 如上我们一次性将表Production.Product中的列ListPrice更新为1,结果如下: 但是我们…
转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值,需要的朋友可以了解. 问题 开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果.但是奇怪的是执行其他的select语句却是可以执行的. 原因和解决方法 这种只有update无法执行其他语句可以执行的其…
EBS打开报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本 打开EBS的form,系统报错,中文提示信息是:FRM-92095:oracle jinitiator版本太旧,请安装版本1.1.8.2或更高版本:如果是英文环境,则会报错:FRM-92095: Oracle JInitiator version too low. Please install version 1.1.8.2 or higher. 图1:frm-92095报错信息…
oracleassemblytransactionscomponentsjobsreference 目录(?)[-] 定义BOM 定义Routing 定义WIP Discrete Job 发料 Material Transaction WIP Component Return 1.定义BOM BOM(物料清单)是WIP的基础,BOM定义了产品的组成结构图,定义了生产特定物料所需的零件及数量.每一个零件也可能有他们的BOM结构,由此产生多层的产品结构树. 比如:一台电脑 = 1 CPU + 1 内…
最近研究sql优化,以下文章转自互联网: 1.     语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation set join_state='1'whereyear='2011' 更新年度为“2011”的数据的join_state字段为“1”.如果更新的字段加了索引,更新时会重建索引,更新效率会慢.    多表关联,并把一个表的字段值更新到另一个表中的字段去: update 表a set a.字段1 = (s…
1概念小结:(针对以下引用区域内容) 1.1 普通select语句不加锁. 1.2 for update和for update nowait都试图将符合条件的数据加上行级锁.用于排斥其他针对这个表的写操作.确保只有当前事务对指定表进行写操作. 但for update执行后,如果适配相关数据正在被修改(即加锁)则会进入等待.待对方修改完毕,释放锁后接手并发出语句,相应加锁. 而for update nowait执行后,如相关数据正在被修改(即锁定)不进行等待,直接返回“ORA-00054错误“ 摘…
原文地址:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记…
    首先我们来看一下ROWNUM: 含义解释: 1.rownum是oracle为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推.这是一个伪列,可以用于限制查询返回的总行数. 2.rownum不能以任何基表的名称作为前缀. 对于ROWNUM来说,通常我们可以使用的比较符是<和<=,不能单独的使用=.>.>=等比较运算符,其实我们可以这样简单的 理解,oracle是找到第一条的记录添加序号1之后,才可以知道谁是第二条记录,然后添加序号2,以此类推.所以对于等于来…
1.for update 和 for update nowait 的区别: 1.oracle 中执行select 操作读取数据不会有任何限制,当另外一个进程在修改表中的数据,但是并没有commit,所以select的结果为当前时刻表中的记录. 2.加入for update后会该表符合条件的数据进行加锁,注意的是这里只是锁定了符合条件的行,其他行还是可以被其他进程操作.其他进程若是想修改(update)当前行就会出现阻塞.就会一直等待到当前进程commit后才会被执行. 3.for update…
由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询.简单地说,实现方法如下所示:select 列名1 ...列名n from(select 列名1 ...列名n    from 表名 order by 列名1)where rownum <=N(抽出记录数)order by rownum asc 如:select id,name from (select id,name from student…
原因: 由于在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记录 Sql代码 SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid; 然后删除锁定记录 Sql代码 ALTER system KI…
原文地址:http://blog.csdn.net/u011721927/article/details/39228001 一.         update语句的语法与原理 1.     语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation set join_state='1'whereyear='2011' 更新年度为“2011”的数据的join_state字段为“1”.如果更新的字段加了索引,更新时会重…
1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记录的状态. 如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,…
1.问题背景 尽管在数据库操作中我们并不提倡改动主键,可是确实在实际生活中有这种业务需求: 表A有主键KA,表B中声明了一个references A(KA)的外键约束.我们须要改动A中某条目KA的值而且更新B中外键约束. 可是DBMS在运行了第一条update后检查完整性会发现冲突:B中条目的外键不存在. 注:我在Oracle database环境下遇到这个问题的.Oracle非常蛋疼的不能设置外键为update级连.所以仅仅有人工处理. 2.举例说明 用一个简单的样例说明.数据库中有下面三个表…
一.问题探究 开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果.但是奇怪的是执行其他的select语句却是可以执行的. 二.刨根问底 这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住.由于我的java程序中加了事务,之前de…
这两天给新同事安排了一个工作,即做一个update 的级联更新,在实际操作中发现了一个问题.就是对于Oracle的更新的语法,大部分人尤其是学过SqlServer的人在使用oracle的时候对于oracle的更新会有许多的疑问.就此记下,以便日后查阅 update a set a.col1 = (select b.col1 from b where b.col2 = a.col2) where exists (select * from b where a.col2 = b.col2) /**o…
原文地址:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区别: 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以select结果为当前时刻表中记…
1.两表(多表)关联update -- 被修改值由另一个表运算而来 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) 实例: update bd_psndoc set bd_…
需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表. 1.错误的写法: 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). 正确的写法: update table_name t1 s…
24小时表示方法:to_date(’ ::’,’yyyy-mm-dd hh24:mi:ss’) 12小时表示方法:to_date(’ ::’,’yyyy-mm-dd hh:mi:ss’) ','S7551581',to_date('2016-04-12 20:20:59','yyyy-mm-dd hh24:mi:ss'), to_date(',sysdate,sysdate,'aaa'); update settle_white t SET t.start_tm = to_date('2016-…
update  A set (A.a2,A.a3) =(select B.b2,b.b3 from  B where B.b1= A.a1 and A.a3=100 )…
Update更新 格式: update table _name(表名) set col_name(列名) =expr(表达式) where  conti(条件) 案例1: update 语法可以用新值更新原有表中的各列 新建表 插入数据 create table stu(id number,name varchar2(64),sex char(2),birth date,money number(10,2),resu clob); insert into stu values(1,'aaa','…
1.单表更新 update customers set city_name='山西省太原市' where city_name='山西太原' 2.两表(多表)关联update -- 被修改值由另一个表运算而来 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_…
对数据进行查询操作后,或提示ORA-00054错误,这时选定行的资源被占用,资源正忙.其他程序或者用户在占用着此行数据或者此表. 直接查询. select * from A1 t  ; 此时取到的数据为运行前的数据,同一时刻其他用户进行数据修改无法获取. 实时更新查询 select * from A1 t  for  update   ; for update 更新,其他管理者进行数据的操作时可以进行update ,此限制用户的数量,连接用户少,线程使用不被占用时可以使用. 等待3秒后更新 se…
我个人觉得写的很好 http://blog.csdn.net/wanglilin/article/details/7200201 需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表. 1.错误的写法: 1 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中查出的记录进…
insert into table (,,) values (,,) where update table set (,)=(select , from ) where…
The raw data is like timestamp, router, interface, src_ip, dst_ip, protocol, pkts 10000000, 1.1.1.1 1 2.2.2.2 1.3.3.3 tcp 100 10000000, 1.1.1.2 2 2.2.8.2 2.3.3.3 tcp 200 10000001, 8.1.1.1 1 2.2.2.8 3.3.3.3 udp 500 10000001, 2.1.1.1 1 2.2.8.2 4.3.3.8…