oracle 需要注意的地方
INSERT /*+APPEND */ INTO employee (empno,ename,sal,deptno)
SELECT empno,ename,sal,deptno from emp
WHERE deptno=20;
第二条语句使用/*+APPEND */来表示采用直接装载方式,当要装载大批量数据时,采用第二种方法装载数据的速度要远远优于第一种方法。
使用多表插入数据
使用ALL操作符执行多表插入时,在每个条件子句上都要执行INTO子句后的子查询//意思好像是说下面插入时要执行四次SELECT了 看来效率上不高啊 慎用
INSERT ALL
WHEN deptno=10 THEN INTO dept10
WHEN deptno=20 THEN INTO dept20
WHEN deptno=30 THEN INTO dept30
WHEN job='CLERK' THEN INTO clerk
ELSE INTO other
SELECT * from emp;
使用FIRST 操作符执行多表插入
当使用FIRST操作符执行多表插入时,如果数据已经满足了先前条件,并且已经被插入到某表,那么该行数据在后续插入中将不会被再次使用 //这个效率会很快
INSERT FIRST
WHEN deptno=10 THEN INTO dept10
WHEN deptno=20 THEN INTO dept20
WHEN deptno=30 THEN INTO dept30
WHEN job='CLERK' THEN INTO clerk
ELSE INTO other
SELECT * from emp
在更新 插入时date数据 最好用TO_DATE函数进行处理一下
update 语法
UPDATE<table|view>
SET<column>=<value>[,<column>=<value>]
[WHERE <condition>];
UPDATE emp SET (job,sal,comm)=(SELECT job,sal,comm from emp='SMITH') WHERE ename='SCOTT'
delete 语法
DELETE from <table|view> [WHERE<condition>]
设置保存点
savepoint a;
exec dbms_transaction.savepoint('a');
取消部门事务
roolback to a ;
exec dbms_transaction.rollback_savepoint('a')
注意当设置只读事务时,该语句必须是事务开始的第一条语句,另外在应用程序中 使用过程READ_ONLY也可以设置只读事务
SET TRANSACTION READ ONLY;
or
exec dbms_transaction.read_only
顺序事务
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
相关文档:
简单描述一下在windows的同一用户下,安装Oracle的9i、10g和11g的方法。
Oracle在windows平台下的安装是所有平台中最简单的,基本上不需要进行任何额外的处理就可以成功的安装,可以说没有什么技术含量。
不过在同一台机器的同一个用户上同时安装两个不同版本的数据库就需要一定的技巧了。这里简单描述一下在同时 ......
package cn.edu.bit.test;
import java.sql.*;
public class Jdbc {
public static void main(String[] args)
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
System.out.p ......
SELECT a.ADDRESS,
sql_text,
executions,
rows_processed,
cpu_time,
a.DISK_READS,
  ......