oracle 笔记 V 之触发器 (TRIGGER)
触发器 trigger
分类:前触发,后触发
行触发器,语句触发器
行触发器与语句触发器的区别:
行触发器要求当一个 DML 语句操作影响数据库中的多行数据时,对于其中的每个数据行,只要它们符合触发约束条件,均激活一次触发器,FOR EACH ROW 选项说明触发器为行触发器;
语句触发器将整个语句操作 作为触发事件,当它们符合约束条件时,激活一次触发器
创建语法:
create or replace trigger trigger_name
before |after
insert |delete | update |{[of column[,column ...]]
on [schema.]table_name
for each row
[when condition]
trigger_body;
eg(仔细体会):
create or replace trigger hello_tri
before insert or delete or update on emp
for each row
begin
dbms_output.put_line('我是触发器!');
end;
相关文档:
DML(Manipulation):数据操作语言
CRUD
DDL(Definition): 数据定义语言,与表,索引,同义词有关
create,alter,drop,rename,truncate(清空)
DCL(Control): 数据控制语言,与权限有关
grant,revoke
TCL(Transaction Control): 事务控制语言,与事务有关
commit,rollback,savepoint
==========================
存储 ......
1、用dblink链接oracle
(1)与平台无关的写法:
create public database
link cdt connect to apps
identified by apps using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.31.205.100)(PORT = 1541))
)
(CONNECT_DATA =
(SERVICE_NAME = CDT)
)
)'
(2)可以将单引号内的内容 ......
1. flashback table table_test to timestamp to_timestamp('20091103000000','yyyymmddhh24miss');
2.如果報錯ORA-08189: cannot flashback the table because row movement is not enabled
3.alter table table_test enable row movement;
4.OK ......
今天在net manager配置本地服务时出现这样的问题
ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor
在google上搜索得到若干答案,总是不对,后来在同事的帮助下解决了问题,现在总结一下跟大家分享。
1、选中本地——服务命名,在编辑中创建
2、输入net服务名,注意这是 ......
1创建新表
1.1从查询到的表创建表
create table temp as select stuName,stuNo,stuSex from stuInfo where stuAge>25;
1.2创建新表
/*学生信息表*/
create table stuInfo(
stuName varchar2(10) ,
stuNo varchar2(10),
stuSex varchar2(4),
stuAge number(2),
st ......