9.9、触发
一、含
当用户执行了 insert | update | delete 这些操作之后,可以触发一系列其它的动作、业务逻辑,使用触发器可以协助应用在数据库端确保数据的完整性、日志记录 、数据校验等操作。使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在Oracle触发器不仅支持行级触发,还支持语句级
二、
触发器类型 NEW 和 OLD的
INSERT 型触发器 NEW 表示将要或者已经新增的数
UPDATE 型触发器 OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数
DELETE 型触发器 OLD 表示将要或者已经删除的数
三、语
1、创建触
create trigger 触发器
before|afte
insert|update|delete
on 表名
[for each row]--行级触发
declar
--声明部
begi
--业务逻辑
end
2、修改触发
create [or replace] trigger 触发器
before|afte
insert|update|delete
on 表名
[for each row]--行级触发
declar
--声明部
begi
--业务逻辑
end
3、删除触发
四、演
1、INSERT 型触
--新员工入职之后,输出一句话: 欢迎加入
create or replace trigger tri_emp_inser
afte
inser
on em
declar
beg
dbms_output.put_line('欢迎加入我们')
end
--插入数据就可以自动触发触
insert into emp(empno, ename) values(9527, '马哈哈')
2、UPDATE 型触发
--判断员工涨工资后的工资一定要大于涨工资前的
create or replace trigger tri_emp_update_sa
befor
updat
on em
for each ro
declar
beg
if :old.sal > :new.sal the
raise_application_error(-20002,'旧的工资不能大于新的工资')
end if
end
--更新数据就可以自动触发触发器(无异
update emp set sal = sal + 10
select * from emp
--更新数据就可以自动触发触发器(有异
update emp set sal = sal - 100
select * from emp
3、DELETE 型触发
--老员工离职之后,输出一句话: 有员工离
create or replace trigger tri_emp_delet
afte
delet
on em
declar
beg
dbms_output.put_line('有员工离职了')
end
--删除数据就可以自动触发触
delete from emp where empno = 9527
4、删除触发
drop trigger tri_emp_inser
drop trigger tri_emp_update_sal
drop trigger tri_emp_delete
第十章 数据备份与恢
10.1、全部导
--注意:以下操作为cmd命令行操
全部导出: exp 管理员帐号/密码 file='d:\beifen.dmp' full=
10.2、全部导
--注意:以下操作为cmd命令行操
全部导入: imp 管理员帐号/密码 file='d:\beifen.dmp' full=
10.3、按用户导
--注意:以下操作为cmd命令行操
按用户导出: exp 管理员帐号/密码 file='d:\beifen.dmp' owner=帐
10.4、按用户导
--注意:以下操作为cmd命令行操
按用户导入: imp 管理员帐号/密码 file='d:\beifen.dmp' fromuser=帐
第十一章 安装Oracle单实
11.1、环境准
注意:当前Linux为CentOS-6.10-x86_64-bin-DVD1.is
界面:使用图形
内存:4
硬盘:20
连接:SecureCRT,上传文件(rz命令)需要安装:yum -y install lrz
11.2、下载
32位需要下载(需要登录账号)
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.z
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.z
64位需要下载(需要登录账号
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.z
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.z
11.3、解压
上
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zi
注意:unzip可能会提示没有这个命令,那就需要我们安装
yum -y install zi
yum -y install unzi
11.4、移动软
[root@caochenlei ~]# mkdir -p /usr/local/oracl
[root@caochenlei ~]# mv database/ /usr/local/oracl
11.5、域名映
查看当前系统主机名
[root@caochenlei ~]# hostna
caochenle
查看当前系统的IP地址
[root@caochenlei ~]# ifconf
修改系统的映射文件
[root@caochenlei ~]# vi /etc/hos
在末尾添加以下内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomai
::1 localhost localhost.localdomain localhost6 localhost6.localdomain
192.168.112.129 caochenl
11.6、关闭selinu
[root@caochenlei ~]# vi /etc/selinux/confi
设置SELINUX=disable
临时关闭一下selinu
[root@caochenlei ~]# setenforce
11.7、关闭防火
[root@caochenlei ~]# service iptables sto
[root@caochenlei ~]# chkconfig iptables of
11.8、安装依赖
[root@caochenlei ~]# yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC-devel pdksh java-1.8.0-openjdk
11.9、添加新用
[root@caochenlei ~]# groupadd oinstal
[root@caochenlei ~]# groupadd db
[root@caochenlei ~]# useradd -g oinstall -G dba oracl
[root@caochenlei ~]# passwd oracl
11.10、修改内核文
[root@caochenlei ~]# vi /etc/sysctl.con
在末尾添加以下内容
fs.aio-max-nr = 10485
fs.file-max = 681574
kernel.shmall = 209715
kernel.shmmax = 53687091
kernel.shmmni = 409
kernel.sem = 250 32000 100 12
net.ipv4.ip_local_port_range = 9000 6550
net.core.rmem_default = 26214
net.core.rmem_max = 419430
net.core.wmem_default = 26214
net.core.wmem_max = 104857
更新一下文件以生
[root@caochenlei ~]# sysctl
11.11、修改用户限
[root@caochenlei ~]# vi /etc/security/limits.con
在末尾添加以下内容
oracle soft nproc 40
oracle hard nproc 6553
oracle soft nofile 409
oracle hard nofile 6553
修改完成后重启服务器
[root@caochenlei ~]# rebo
11.12、创建安装目
[root@caochenlei ~]# mkdir -p /data/oracle/product/11.2.
[root@caochenlei ~]# mkdir -p /data/oracle/oradat
[root@caochenlei ~]# mkdir -p /data/oracle/inventor
[root@caochenlei ~]# chown -R oracle:oinstall /data/oracl
[root@caochenlei ~]# chmod -R 775 /data/oracl
11.13、设置环境
切换到oracle用户下
[root@caochenlei ~]# su - orac
[oracle@caochenlei ~]$ vi .bash_profil
在末尾添加以下内容
ORACLE_BASE=/data/orac
ORACLE_HOME=$ORACLE_BASE/product/11.2.
ORACLE_SID=orc
PATH=$PATH:$ORACLE_HOME/bi
export ORACLE_BASE ORACLE_HOME ORACLE_SID PAT
更新一下文件以生效
[oracle@caochenlei ~]$ source .bash_profi
11.14、安装应用程
这一步需要在虚拟机里进行,因为会弹出窗体程
[oracle@caochenlei response]$ cd /usr/local/oracle/databas
[oracle@caochenlei database]$ LANG=en_US ./runInstalle
用户安装截
然后提示要执行两个脚本,使用root执行,可以使用SecureCRT重新新建一个连接
[root@caochenlei ~]# sh /data/oracle/inventory/orainstRoot.
Changing permissions of /data/oracle/inventory
Adding read,write permissions for group
Removing read,write,execute permissions for world
Changing groupname of /data/oracle/inventory to oinstal
The execution of the script is complete
[root@caochenlei ~]# sh /data/oracle/product/11.2.0/dbhome_1/root.s
Running Oracle 11g root.sh script..
The following environment variables are set a
ORACLE_OWNER= oracl
ORACLE_HOME= /data/oracle/product/11.2.0/dbhome_
Enter the full pathname of the local bin directory: [/usr/local/bin]
Copying dbhome to /usr/local/bin ..
Copying oraenv to /usr/local/bin ..
Copying coraenv to /usr/local/bin ..
Creating /etc/oratab file
Entries will be added to the /etc/oratab file as needed b
Database Configuration Assistant when a database is create
Finished running generic part of root.sh script
Now product-specific root actions will be performed
Finished product-specific root actions
执行完成,点ok,安装成
11.15、使用sqlplus
配套资料,免费下
链接:https://pan.baidu.com/s/1yjJY3IstA8aMQBPYhWNlC
提取码:qmp
复制这段内容后打开百度网盘手机App,操作更方便
ORCL
(DESCRIPTION
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.112.129)(PORT = 1521)
(CONNECT_DATA
(SERVER = DEDICATED
(SERVICE_NAME = orcl
新建一个系统环境变量,变量名为TNS_ADMIN,变量值为tnsnames.ora所在文件夹的全路径))))=)= =哦dw载连接功...dy......: 1es:.h.l....sh进行图:re/序序1le:Hnl0le:ele:变量eeya0录1ot:432166696:1f制1-p效:644408622476:1f件4321eeal户1*包21fp墙1 0x:d1gx4321ei6n4:1ts:1ig:21ime:射21ee件pp一下了p
解压传程序ipip):ipip:程序szGBGB界面o备例21号作入21号作出21y作入21y作出复321;;t;器3210987654321;发器;;inepere职了器109876543210987654321;;常);;常);;;ninewpeel工资器3210987654321;发器;;ineptrt我们发器示1称;器0987654321; n分e器称 r名称器0987654321; n分e器称 r名称发器法据据据使用分类触发义器1l;数09876543210987654321;;;n;e年薪;;;n;sr/ 号*年薪数09876543210987654321;;;n;e年薪;;;n;sr/ 号*年薪函数示987654321;;n;e二:;一:数1称;数654321; n分s类型数654321; n分s类型函数语法回值义数1l;程09876543210987654321;0元;;物;资;资;资;资n;量s)工资程09876543210987654321;0元;;物;资;资;资;资n;量s)工资过程示987654321;;ine二:;一:程1称;程654321; n分s.)程654321; n分s.)过程语法高效义程987654321;;;p标n;e工资出876543210987654321;;标;;;;p历;标n;量;标e工资用876543210987654321;;标;;;;p历; n;量;标e工资使用示76543210987654321;游标;一行;标;标游标;标;标游标语法获取义标1e;词4321;用;创建词4321;用;创建义词示1称;词1称;词1称;义词语法关系义词1p;图21;as图21;as视图示1称;图321;句名称图321;句名称视图语法使用义图1E;引10987654321建某列;索引;索引;索引引1);索引示1称;引10987654321建某列;索引;索引;索引引1);索引语法效率义引9876543210987654321;;n;nn;常n件;来n;常;ee异常常6543210987654321;;nn;;常n件;来n;ee异常常09876543210987654321;;n;n;n;n;nn;;; 开n;r;异常示43210987654321; n n常n常n辑n;量re常量据常异常异常类3210987654321;常n.n.n常n辑n量re语法异常义外0987654321;;;;;pn;e10示54321; 件 op法环87654321;;;pine10示321; op法环987654321;;;;pn;e10示321; op法环3210987654321;;;e;n;n;nn;re示7654321; n en法断765432109876543210987654321;用有串 数; ;出量量量辑n 型入;;;;;;;量e量7654321d;辑n 量e式程210987654321;;序列;e1e11q序列示7654321;环ee少始名称语法效果义列部分度。意询定;更新解决新。义题)可。级别问题?样致生)些?据时?)3210987654321;;;事务;点】e语句句事务类地的性执行D)执行义务言321;;;句321;;;句321;;;句言4321;除;添加束4321;除;添加束654321;者;除;添加束4321;除;添加束654321;者;除;添加约束改543210987654321;束,束束束束(情表; ,(类表示7654321;束束束束束名(法束21;名;名21;