Oracle什么时候需要Commit】的更多相关文章

写完DML语句(update, insert, delete)后,需要手动COMMIT,如果没有COMMIT,更新的内容会被保存到内存中,而不是提交到数据库中,将不会被其他Session(对话)看见.其他对话看到的是更新前的数据.当用户退出对话时,Oracle才会自动Commit. 而DDL语句(create, alter, drop, truncate),自带COMMIT,所以不需要写COMMIT.因此,DDL操作不能被回滚. 执行完DML语句,如果再执行DDL语句,也会自动COMMIT未被C…
今天在oracle的SQL plus 中运行了删除和查询操作,然后在PL/SQL中也运行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,可是为什么不一致呢,就是没用commit, 在网上查了一下,大概是这样说的: DML语言,比方update,delete,insert等改动表中数据的须要commit; DDL语言,比方create,drop等改变表结构的,就不须要写commit(由于内部隐藏了commit); DDL 数据定义语言: create ta…
Oracle 的安全 commit &checkpoint commit ---lgwr 事务相关的操作,保证事务的安全. commit标志着事务的结束.意味着别人对你事务操作的结果可见. commit后数据可能在内存里,也可能在磁盘里, commit后没有机会回滚了,除非恢复数据. 标识着用户的决定,数据的生效. commit后,这条记录产生的redo重做日志是放在log buffer内存里面的,oracle会让log buffer将redo重做日志写到磁盘上,commit才会返回提交完成.…
只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少: COMMIT所释放的资源: a.       回滚段上用于恢复数据的信息. b.       被程序语句获得的锁 c.       redo log buffer 中的空间 d.       ORACLE为管理上述3种资源中的内部花费  (在使用COMMIT时必须要注意到事务的完整性,现实中效率和事务完整性往往是鱼和熊掌不可得兼)…
1.FLASHBACK QUERY 闪回到15分钟前 SELECT * FROM tablename AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '15' MINUTE ) WHERE 1=1; 这里可以使用DAY.SECOND.MONTH替换MINUTE ,例如: SELECT * FROM tablename AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '2' DAY) WHERE 1=1; 闪回到某个时间点 SELEC…
You have an Oracle Form in which you have multiple data blocks and requirement is to commit just one data block changes and not to effect any other data blocks. But suppose you have a commit_form button also in form which will commit all the data blo…
原因是:oracle数据库更新数据后需要commit,不然会堵塞,就会卡住 那么每次调用executeUpdate()完后,数据库要自动commit才可以. 我的基类加了一下,注意红色字体部分代码: //增删改 public int executeUpdate(String sql,Object[] params){ int update = 0; try { pstm = connection.prepareStatement(sql); for(int i=0;i<params.length…
实际工作中,我们经常会遇到一些情况,误删除某些表或某些表的某些记录,这时候就需要我们将这些记录重新插入进去.如何才能解决这个问题呢? Oracle的Flashback query(闪回查询)为我们解决了这个问题 ,他的原理是Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. 下面我们先从简单的例子来看闪回查询的用法: 现有一张表有如下的数据 如果误执行了delete语句,删除其中一条记录,或插入一个废数据,修改了另外一…
程序通过JDBC 连接数据库异常,报 ORA-03137[12333]的错误. 当前程序的JDBC 驱动版本:ojdbc16-11.2.0.1.0.jar 数据库版本: 11.2.0.3 一. Log 信息 1.1 alert log TNS-12637: Packet receive failed ns secondary err code: 12532 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 opiodr…
SQL执行计划干预 从使用postgresql来看,想要改变执行计划只能通过対表进行分析,不能通过添加hint的方式来改变执行计划: oracle不仅可以通过对表进行收集统计来改变执行计划,而且很重要的一点支持通过添加hint的方式以达到自己想要的执行计划. 查询效率 从整体上比,不管是在离散数据的获取,还是在大数据量的统计分析,oracle的查询效率要好于postgresql,尤其在大数据量的统计分析(比较.排序.去重.表关联...): 有一个比较奇怪的地方是大表数据的加载,比方说link7的…
不论是开发.管理.优化还是设计,对Oracle的基本原理的了解都是必不可少的,于是对自己最近关于Oracle的学习作出一点点的总结. 庖丁解牛之所以能做到"合于桑林之舞,乃中经首之会",是因为其"所好者道也".那我们实际的Oracle使用中,了解Oracle的基本体系,也才能对一系列的操作知其然也知其所以然,才能在这个基础上进行相关的优化操作. 开局一张图,内容全靠编. 上图是Oracle的一张基本体系图,简单描述一下大概如下四点: 1.Oracle是由数据库和实例…
I/O相关竞争等待简介 当Oracle数据库出现I/O相关的竞争等待的时候,一般来说都会引起Oracle数据库的性能低下,发现数据库存在I/O相关的竞争等待一般可以通过以下的三种方法来查看Oracle数据库是否存在I/O相关的竞争等待: (1)Statpack报告中在"Top 5 Wait Events"部分中主要都是I/O相关的等待事件. (2)数据库的等待事件的SQL语句跟踪中主要都是I/O相关的等待事件的限制. (3)操作系统工具显示存储数据库文件的存储磁盘有非常高的利用率. 数…
CREATE TABLE "TEST6" ( "ID" ), "NAME" ), "AGE" ,), "SEX" ), "ENAME" ), "ADDTIME" DATE ) , null, 'zhangsan', to_date('14-03-2017 00:00:09', 'dd-mm-yyyy hh24:mi:ss')); ', 'Lisi', to_date(…
通常对undo有一个误解,认为undo用于数据库物理地恢复到执行语句或事务之前的样子,但实际上并非如此.数据库只是逻辑地恢复到原来的样子,所有修改都被逻辑地取消,但是数据结构以及数据库块本身在回滚后可能大不相同.原因在于:在所有多用户系统中,可能会有数十.数百甚至数千个并发事务.数据库的主要功能之一就是协调对数据的并发访问.也许我们的事务在修改一些块,而一般来讲往往会有许多其他的事务也在修改这些块.因此,不能简单地将一个块放回到我们的事务开始前的样子,这样会撤销其他人(其他事务)的工作! 9.3…
转载于 http://www.uml.org.cn/sjjm/201204065.asp 在Oracle中,我们没有MYSQL和SQL                           Server可以使用的自增数据类型.大部分场景下,如果我们需要生成业务无关的(Business-Independent)主键列,序列Sequence对象是我们最方便的选择. 定义Sequence是很简单的,如果最大程度利用默认值的话,我们只需要定义sequence对象的名字即可.在序列Sequence对象的定义…
客户32位置oracle数据库系统的磁盘损坏,幸运的是,oracle数据库完美无损.客户数据库迁移到新购设备.新设备的内存64G,制REDHAT 6.2 64位置,直接拷贝数据文件肯定是不.由于oracle 的存储过程在32位和64位平台下的wordsize不同.尽管用户的存储过程能够在使用时自行完毕又一次编译,但oracle的系统存储过程确须要我们来手工转换. 总结,迁移步骤例如以下: 1:备份oracle数据库 2:备份控制文件到trace(以备须要新建控制文件) SQL> alter da…
1.在mysql中事务默认是自动提交的,只有设置autocommit为0的时候,才用自己commit(commit--rollback回滚) 2.但是在oracle中必须自己commit;不然就只能结束这次事务之后才会提交 3.在sql server中go命名在我的理解和commit命令相同,就是为了完成一个事务提交的 4.对于分页,mysql使用limit.sql server使用top.oracle使用ROWNUM等伪列 5.oracle中的varchar2和varchar相比,具备了向后兼…
修改字段的属性,名称方法 --修改某一个字段的类型,当该字段不为null时alter table 表名add 字段NUMBER(11,0) default 0 not null;--添加表一个字段 ALTER TABLE 表名 ADD  字段 NUMBER(11,0) ; --新创建一列,期待的字段类型 UPDATE 表名 SET 字段_bak= 字段;COMMIT; --复制旧字段值到新字段,dml的都需要提交 ALTER TABLE 表名DROP COLUMN 字段;--删除掉旧字段 ALT…
Oracle及SQLPLUS使用笔记 自己之前粗粗的学过MySQL,学校用的是Oracle,学生使用sqlplus,这是个命令行界面的数据库管理软件(为了学习嘛,不用图形化可以理解),这里记录一些使用时候涉及到的实用内容: sqlplus删除已输入内容:ctrl+backspace 注意Oracle和MySQL的区别:Oracle的自动提交功能是关闭的,所以如果修改了数据库data之后没有提交就关闭了就gg了,所以使用Oracle一定要熟记commit和rollback指令 sqlplus没有回…
数据装载 sql loader(PPT-I-490-498) 14.1 sql*loader:将外部数据(比如文本型)数据导入oracle database.(用于数据导入.不同类型数据库数据迁移) 14.2 sql*loader 导入数据原理:在段(segment 表)insert 记录 1)conventional:将记录插入到segment的HWM(高水位线)以下的块,要首先访问bitmap ,来确定那些block 有free space 2)direct path:将记录插入到segme…
1.在mysql中事务默认是自动提交的,只有设置autocommit为0的时候,才用自己commit:(提到commit不要忘了rollback哦,回滚)2.但是在oracle中必须自己commit:不然就只能结束这次事务之后才会提交.3.在sql server中go命名在我的理解和commit命令相同,就是为了完成一个事务提交的: 4.对于分页,mysql使用limit.sql server使用top.oracle使用ROWNUM等伪列: 5.oracle中的varchar2和varchar相…
Locking Mode Property Description Specifies when Oracle Forms tries to obtain database locks on rows that correspond to queried records in the form. The following table describes the allowed settings for the Locking Mode property:                 Val…
Oracle里面有一个回闪的操作,这个貌似sql server是没有的.要使用这个功能,需要用到两个时间内部函数 TIMESTAMP和TO_TIMESTAMP.其中,函数TO_TIMESTAMP的语法格式为: TO_TIMESTAMP('timepoint', 'format') 另外我发现Oracle里的所有操作,如果不使用commit;的话,都是没起实际作用的.另起一个操作窗口就会发现数据还是完好的.如下图示,我依次输入的是: set time on select * from rollxs…
OCP 052 课堂笔记 目录 第一部分: Oracle体系架构... 4 第一章:实例与数据库... 4 1.Oracle 网络架构及应用环境... 4 2.Oracle 体系结构... 4 3. SGA. 5 4 Oracle的进程: 9 5 PGA. 12 6.用户与Oracle服务器的连接方式... 12 第二章:实例管理及数据库的启动/关闭... 14 2.1 实例和参数文件... 14 2.2 数据库启动与关闭:... 16 2.3 告警日志:alert_SID.log. 18 2.…
Hibernate3 第一天 课程安排:4天(框架的使用+理论知识) 第一天Hibernate快速入门(单表的CRUD)+核心api讲解(配置+接口) 第二天:Hibernate一级缓存,快照,对象持久化状态,多表映射操作 第三天Hibernate各种查询的使用(三种方法),抓取策略优化(lazy加载等) 第四天 Hibernate二级缓存\查询缓存,jpa注解的使用 内容安排: Hibernate概述.有什么优缺点等 Hibernate的快速入门:环境搭建.CRUD(增删改查)Create-R…
Questions and Answers 1) 我能用更高版本的 Oracle 还原或复制旧版本的数据库吗? 2) 我能在两个不同的补丁程序集之间进行还原或复制吗? 3) 我能在同一操作系统的不同版本之间进行还原或复制吗? 4) Oracle 的位(bit)级别(32 位或 64 位)不匹配时,可以进行还原或复制吗? 5) 可以将更高版本的备份还原到较早版本的 Oracle 吗? 6) 我能在两个不同的平台之间还原或复制我的 RMAN 备份吗,例如 Solaris 到 Linux? 适用于:…
内容源自:一篇很棒的 MySQL 触发器学习教程 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行.        触发器经常用于加强数据的完整性约束和业务规则等. 触发器创建语法四要素:        1.监视地点(table)     …
MSSQL执行 : exec proc_NAME ORACLE : beginproc_NAME;commit;end; 1.求素数 MSSQL; CREATE proc [dbo].[EXEC003] as declare @num int; begin ; ) BEGIN IF(@num % = ) BEGIN PRINT(@NUM); END SET @num -= ; END end ORACLE: create or replace procedure EXEC003 as List…
2013年4月27日 星期六 10:53  1. sql loader :将外部数据(比如文本型)数据导入oracle database.(用于数据导入.不同类型数据库数据迁移) 2.sqlloader 导入数据原理:在段(segment 表)insert 记录 1)normal :将记录插入到segment的HWM(高水位线)以下的块,要首先访问bitmap ,来确定那些block 有free space 2)direct: 将记录插入到segment的HWM(高水位线)以上的从未使用过的块,…
一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行.        触发器经常用于加强数据的完整性约束和业务规则等. 触发器创建语法四要素:        1.监视地点(table)        2.监视事件(insert/update/de…