Oracle数据库程序设计学习笔记(3)
来源:互联网 发布:改短信软件 编辑:程序博客网 时间:2024/06/08 01:26
7.定义Table变量类型
declare
type type_table_emp_empno is table of emp.empno%type index by binary_integer;
empnos type_table_emp_empno;
begin
empnos(0) := 7369;
empnos(2) := 6789;
empnos(-1) := 6543;
dbms_output.put_line(empnos(-1));
end;
8.定义record变量类型
记录的显示声明方式类似c语言中的结构体声明。首先要定义记录的结构,然后设置设置记录类型的变量。
declare
type type_record_dept is record (
deptno dept.deptno%type,
dname dept.dname%type,
loc dept.loc%type
);
temp type_record_dept;
begin
temp.deptno := 56;
temp.dname := 'software';
temp.loc := 'gz';
dbms_output.put_line(temp.deptno || ' ' || temp.dname || ' ' || temp.loc);
end;
9.PL/SQL函数和触发器
--创建函数create or replace function add_sal(sSal number)return number
is
begin
if (sSal > 5000) thenreturn sSal + 51;
elsif (sSal > 3000) then
return sSal + 111;
else
return sSal + 222;
end if;end;
select sal, add_sal(sal) from emp;--触发器create table deptLog(uName varchar2(20),action varchar2(20),
dTime date
);--创建触发器--for each row 可以触发多条,当你的语言影响多少条记录就会触发多少次create or replace trigger trig_dept2after insert or delete or update on dept2/* for each row*/begin
if inserting theninsert into deptLog values(user, 'insert', sysdate);elsif updating then
insert into deptLog values(user, 'update', sysdate);elsif deleting then
insert into deptLog values(user, 'delete', sysdate);end if;end;
select * from dept2;select * from deptLog;insert into dept2 values(55, 'SOFTWARE', 'cic');update dept2 set loc = 'go' where deptno in(30);delete dept2 where deptno = 55;--触发器create or replace trigger trig_empafter update on dept for each rowbegin
update emp set emp.deptno =: new.deptno where emp.deptno = :old.deptno;end;
update dept set deptno = 11 where deptno = 10;select * from emp;---语句级触发器create or replace trigger trg_ins_dept2before insert
on dept2
begin
if user not in('SCOTT') thenraise_application_error(-20001, '只有SCOTT才能修改该表!');
end if;end;
禁用、启用触发器alter trigger tgr_Name disable | enable;alter table tableName disable all trigger | enable all trigger;转载来自点击打开链接
0 0
- Oracle数据库程序设计学习笔记(3)
- Oracle数据库程序设计学习笔记
- Oracle数据库程序设计学习笔记(2)
- 数据库程序设计 学习笔记
- java 数据库程序设计 学习笔记
- MySQL数据库程序设计--学习笔记
- oracle数据库学习笔记
- Oracle数据库学习笔记
- Oracle数据库学习笔记
- Oracle数据库学习笔记
- Oracle数据库学习笔记
- oracle数据库学习笔记
- oracle数据库学习笔记
- Oracle数据库学习笔记
- oracle数据库 学习笔记
- Oracle数据库学习笔记
- oracle 学习笔记之PL/SQL程序设计
- oracle数据库学习笔记(一)
- hdu1086
- OC基础—内存管理之多对象内存管理
- POJ 1182
- 驾校之旅
- IT痴汉的工作现状5- 一分钟的工作
- Oracle数据库程序设计学习笔记(3)
- Java内部类的使用小结
- ScriptManager中UpdatePanel嵌套UpdatePanel[局部刷新]
- js drawImage 下面代码可在IE响应,在chrome和FF不行,如何修改
- MFC对话框及窗口函数调用顺序
- 程光 东南大学 教授,博导
- 《PIN CHANGE/UNBLOCK 命令报文》
- 不同Vlan相互通信
- 背包九讲