39 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 13-7月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 13-7月 -87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ---------- ----------
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
已选择14行。
SQL> set feedback off
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 13-7月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 13-7月 -87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ----- ---------- ----------
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
SQL> @c:\sql.sql
SQL> select count(*) from testdelete;
COUNT(*)
----------
5000
SQL> set timing on
SQL> delete from testdelete;;
delete from testdelete;
*
第 1 行出现错误:
ORA-00911: 无效字符
已用时间: 00: 00: 00.00
SQL> delete from testdelete;
已用时间: 00: 00: 00.04
SQL> drop table testdelete purge;
已用时间: 00: 00: 01.36
SQL> set timing on
SQL> set timing off
SQL> @c:\sql.sql
SQL> set timing on
SQL> truncate table testdelete;
已用时间: 00: 00: 03.21
SQL> set timing off
SQL> host cls
Oracle中的事务
事务知识点
数据库事务由以下的部分组成: 一个或多个DML 语句 一个DDL(Data Definition Language ? 数据定义语言) 语句 一个DCL(Data Control Language ? 数据控制语言) 语句
1. 起始标志: DML语句-自动开启
2. 结束标志:提交: 显式提交 commit
隐式提交: DDL(create table,drop user,..)
回滚:显式回滚 rollback
隐式回滚: 掉电,宕机,非正常退出
使用COMMIT 和ROLLBACK语句,我们可以: l确保数据完整性。 l数据改变被提交之前预览。 l将逻辑上相关的操作分组。
自动提交在以下情况中执行: ?DDL 语句。 ?DCL 语句。 ?不使用 COMMIT 或 ROLLBACK 语句提交或回滚,正常结束会话exit。 会话异常结束或
系统异常会导致自动回滚。
保存点 使用SAVEPOINT 语句在当前事务中创建保存点。 使用ROLLBACK TOSAVEPOINT 语句回滚到创建的保存点。
SQL> create table testsavepoint 2 (tid number,tname varchar2(20));
SQL> set feedback on
SQL> insert into testsavepoint values(1,'Tom');
已创建 1 行。
SQL> insert into testsavepoint values(2,'Mary');
已创建 1 行。
SQL> savepoint a;
保存点已创建。
SQL> insert into testsavepoint values(3,'Mike');
已创建 1 行。
SQL> rollback to savepoint a;
回退已完成。
SQL> select * from testsavepoint;
TID TNAME
---------- --------------------
1 Tom
2 Mary
已选择2行。
SQL> commit;
提交完成。
JDBC中如何使用保存点 SQL> /*
SQL> JDBC中使用存储点
SQL> Connection conn = ...
SQL> conn.setAutoCommit(false);
SQL> Savepoint sp = conn.setSavepoint("aaa")
SQL> DML
SQL>
SQL> conn.rollback(sp);
SQL> */
SQL> spool off
|