Create [or replace] trigger [模式.]触发器名
Before| after |instead of insert|delete|(update of 列名)
{insert|delete|(update of 列名) }
On 表名|视图|模式名|数据库名
[for each row]
When 条件
PL/SQL块
说明:
For each row的意义是:在一次操作表的语句中,每操作成功一行就会触发一次;不写的话,表示是表级触发器,则无论操作多少行,都只触发一次(如一次update 会更新多条数据,但是只执行一次);
When条件的出现说明了,在DML操作的时候也许一定会触发触发器,但是触发器不一定会做实际的工作,比如when 后的条件不为真的时候,触发器只是简单地跳过了PL/SQL块;
其中只有update 可以指定列名.
instead of 是在视图上定义的触发器,且只能在行级触发器里面使用.因为视图对表的增删改只能基于单表,使用较少.
On 表名|视图|模式名|数据库名 按照对象不同,又可分为模式触发器(模式名),数据库触发器(database) ......
字符类型:
CHAR(size):固定长度字符串,最大长度2000 bytes
VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749
NCHAR(size):根据字符集而定的固定长度字符串,最大长度2000 bytes
NVARCHAR2(size):根据字符集而定的可变长度字符串,最大长度4000 byte
LONG:变长的字符串,最大长度限制是2GB
CLOB:最大长度4G
NCLOB:根据字符集而定的字符数据,最大长度4G
数值类型
NUMBER(p,s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126 ??
有效位:从左边第一个不为0的数算起的位数
S>0,精确到小数点右边s位,并四舍五入。然后检验有效位是否<=p
Eg:198.34 ànumber(6,1)à198.3,
198.34ànumber(3,1)àerror
S<0,精确到小数点左边s位,并四舍五入。然后检验有效位是否<=p+|s|
Eg:198.34ànumber(6,-1)à200
19834567.34ànumber(6,-1)àerror(有效位8>6+1)
S=0,number表示整数
Oracle 10g以 ......
字符类型:
CHAR(size):固定长度字符串,最大长度2000 bytes
VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749
NCHAR(size):根据字符集而定的固定长度字符串,最大长度2000 bytes
NVARCHAR2(size):根据字符集而定的可变长度字符串,最大长度4000 byte
LONG:变长的字符串,最大长度限制是2GB
CLOB:最大长度4G
NCLOB:根据字符集而定的字符数据,最大长度4G
数值类型
NUMBER(p,s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126 ??
有效位:从左边第一个不为0的数算起的位数
S>0,精确到小数点右边s位,并四舍五入。然后检验有效位是否<=p
Eg:198.34 ànumber(6,1)à198.3,
198.34ànumber(3,1)àerror
S<0,精确到小数点左边s位,并四舍五入。然后检验有效位是否<=p+|s|
Eg:198.34ànumber(6,-1)à200
19834567.34ànumber(6,-1)àerror(有效位8>6+1)
S=0,number表示整数
Oracle 10g以 ......
字符类型:
CHAR(size):固定长度字符串,最大长度2000 bytes
VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749
NCHAR(size):根据字符集而定的固定长度字符串,最大长度2000 bytes
NVARCHAR2(size):根据字符集而定的可变长度字符串,最大长度4000 byte
LONG:变长的字符串,最大长度限制是2GB
CLOB:最大长度4G
NCLOB:根据字符集而定的字符数据,最大长度4G
数值类型
NUMBER(p,s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126 ??
有效位:从左边第一个不为0的数算起的位数
S>0,精确到小数点右边s位,并四舍五入。然后检验有效位是否<=p
Eg:198.34 ànumber(6,1)à198.3,
198.34ànumber(3,1)àerror
S<0,精确到小数点左边s位,并四舍五入。然后检验有效位是否<=p+|s|
Eg:198.34ànumber(6,-1)à200
19834567.34ànumber(6,-1)àerror(有效位8>6+1)
S=0,number表示整数
Oracle 10g以 ......
1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。
2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i;
3、SQL>connect / as sysdba ;(as sysoper)或
connect internal/oracle AS SYSDBA ;(scott/tiger)
conn sys/change_on_install as sysdba;
4、SQL>startup; 启动数据库实例
5、 查看当前的所有数据库: select * from v$database;
select name from v$database;
desc v$databases; 查看数据库结构字段
7、怎样查看哪些用户拥有SYSDBA、SYSOPER权限:
SQL>select * from V_$PWFILE_USERS;
Show user;查看当前数据库连接用户
8、进入test数据库:database test;
9、查看所有的数据库实例:select * from v$instance;
如:ora9i
10、查看当前库的所有数据表:
SQL> select TABLE_NAME from all_tables;
select * from all_tables;
SQL> select table_name from all_tables where table_name like ‘u’;
TABLE_NAME———————————————default_auditing_options ......
为防忘记,记录于下:
oracle 11gR2 : http://www.oracle.com/pls/db112/homepage,下载网址http://www.oracle.com/technology/documentation/database.html
oracle 11gR1 : http://www.oracle.com/pls/db111/homepage
oracle 10gR2 : http://www.oracle.com/pls/db102/homepage ......
用命令行(CMD)中启动和关闭ORACLE服务
监听启动
lsnrctl start
监听停止
lsnrctl stop
启动Oracle
net start oracleservicesid
停止Oracle
net stop oracleservicesid
net命令是win系统命令!其它的服务启动和上面的类似!
......
一、数据库
数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统。
二、表空间
表空间是Oracle对物理数据库上相关数据的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为system表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
数据库、表空间、数据文件的关系如下图所示(图片和部分文本引自《Oracle9i 概念手册》)
从上面这副图可以看出以下几点:
·每一个数据库都从逻辑上被划分成一个或多个的表空间
·每一个表空间由一到多个的数据文件构成
·每一个表空间的存储大小等于其所有数据文件的大小之和
·每一个数据库的存储大小等于其所有表空间的大小之和
三、实例
每一个运行中的数据库都对应着一个Oracle实例。当服务器上的Oracle数据库启动时,Oracle首先会在内存中分配一片区域-称之为System Global Area(SGA),然后启动一个或多个的Ora ......