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、删除触发
drop trigger 触发器名
四、演
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;