📄 黄松平612.txt
字号:
create or replace package body hsp_package
is
function output_sum(num int)
return int
is
v_i int:=0;
v_sum int:=0;
begin
if num<0 then
for v_i in num .. 0 loop
v_sum:=v_sum+v_i;
end loop;
else
for v_i in 0..num loop
v_sum:=v_sum+v_i;
end loop;
end if;
dbms_output.put('the sum is'||v_sum);
return v_sum;
end output_sum;
function check_emp(v_empno emp.empno%type)
return number
is
v_flag number;
begin
select count(*)into v_flag from emp where empno=v_empno;
if v_flag>0 then
v_flag:=1;
end if;
return v_flag;
end check_emp;
function output_sal(v_empno emp.empno%type)
return emp.sal%type
is
v_sal emp.sal%type;
begin
if check_emp(v_empno)=1then
select sal into v_sal from emp where empno=v_empno;
end if;
return v_sal;
exception
when others then
v_sqlcode:=sqlcode;
v_sqlerrm:=sqlerrm;
end output_sal;
procedure update_emp_hsp(v_empno emp.empno%type,v_sal emp.sal%type)
is
begin
if check_emp(v_empno)=1 then
update emp set sal=v_sal where empno=v_empno;
end if;
exception
when others then
v_sqlcode:=sqlcode;
v_sqlerrm:=sqlerrm;
end update_emp_hsp;
begin
v_sqlcode:=null;
v_sqlerrm:='初始化文本消息';
end hsp_package;
2
create or replace trigger hsp_tri
instead of insert
on hsp_view
for each row
declare
v_count number;
max_id number;
begin
select count(*)into v_count from hsp_temp ;
if v_count=0then
insert into hsp_temp values(:new.name,:new.age ,1);
else
select max(id)into max_id from hsp_temp ;
max_id:=max_id+1;
insert into hsp_temp values(:new.name,:new.age ,max_id);
end if;
end;
4
5
SQL
查询当前用户下所有对象
select * from tab;
建立一个表
create table a(a number);
查询表结构
desc a
插入新记录
insert into a values(1);
查询记录
select * from a;
更改记录
update a set a=2;
删除记录
delete from a;
修改表结构
alter table STUDENT modify ID int;
alter table STUDENT add zhuce date;
alter table STUDENT drop column zhuce;
alter table student add constraint pk_stu_id primary key(id);
事物控制
汇总函数:
COUNT:返回满足WHERE 条件子句中记录的个数。
SUM:它返回某一列的所有数值的和。
AVG:可以返回某一列的平均值。
MAX:如果你想知道某一列中的最大值请使用MAX。
MIN:MIN 与MAX 类似它返回一列中的最小数值
PL/SQL
PL/SQL 块的基本结构:
DECLARE
BEGIN
EXCEPTION
END
数据类型
NUMBER
CHAR
VARCHAR2
BOOLEAN
DATE
LOB
%TYPE
%ROWTYPE
RECORD
TABLE
PL/SQL中的控制语句:
(1)条件语句
IF condition1 THEN
statement1;
ELSIF condition2 THEN
statement2;
ELSE
statement3;
END IF
(2)循环语句:
LOOP
statement1;
END LOOP
FOR 循环
WHILE循环
游标
存储过程/函数(Procedure/Function)
程序包(Package):程序包说明,程序包体
触发器(Triggers)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -