存储过程
00、查看存储过程
00、删除存储过程
drop procedure proc_name;
00、重新编译存储过程
alert procdure proc_name compile
00、给用户赋予执行权限
grant execute on proc_name to userName
00、调用存储过程
方法1:execute 模式名.proc_name
方法2:
begin
模式名.proc_name
end
00、声明变量
declare
var1 number(2); -- 仅声明
var2 char(2) := '11'; -- 在声明的同时初始化
1、在定义变量名字的时候,一定要注意变量名字不可以是关键字
2、创建存储过程的时候,参数的数据类型不可以指定精确数据类型。例如,只能使用number、varchar2,而不可以使用varchar2(4)
00、oracle语法
1、if
1、
IF ... THEN
...;
END IF;
2、
IF... THEN
...;
ELSE
...;
END IF;
3、
IF...THEN
...;
ELSEIF...THEN
...;
ELSE
...;
END IF;
2、case
CASE
WHEN...THEN...;
ELSE ...;
END CASE;
case语句如果作为分支控制语句,最后结束语句是end case,如果是作为select语句里的控制语句则只需要end
3、for循环
1、
FOR ... IN ...
LOOP
...;
END LOOP;
2、中止sp
for currow in (
select t.col1, t.col2
from tableName t
where ...
)
loop
if currow.col1 = 0 then
return; -- 中止sp,返回
end if;
end loop;
5、while循环
1、
WHILE ...
LOOP
IF ... THEN exit;-- 中止sp,返回
END IF;
END LOOP;
2、
declare
isok := 9;
while isok >= 0
loop
isok := isok - 1;
if isok = 8 then
continue; -- 与编程语言的 continue 语义一样,跳过当前循环的剩余语句,回到循环开始
end if;
if isok <= 0 then
exit; -- 与编程语言的 break 语义一样,跳出循环
end if;
dbms_output.put_line('isok:' || isok);
end loop;
00、创建存储过程
1、
create procedure proc_GradeCount
as
gradeCount number(10);
begin
select count(*) into gradeCount from grade a;
Dbms_Output.put_line(年级总数''||gradeCount);
end;
2、参数设置
create or replace procedure sp_name (
-- 入参、出参列表, 逗号分隔。
uid in varchar2, -- 不能带长度信息
startDate in date, -- 第二个输入参数
defaultVar in varchar2 default "", -- 默认参数,如果不传,要注意参数的顺序
isok out number, -- 输出参数
result out varchar2 -- 第二个输出参数
)
参数的定义形式和作用如下:
参数名 IN 数据类型 DEFAULT 值;
定义一个输入参数变量,用于传递参数给存储过程。在调用存储过程时,主程序的实际参数可以是常量、有值变量或表达式等。DEFAULT 关键字为可选项,用来设定参数的默认值。如果在调用存储过程时不指明参数,则参数变量取默认值。在存储过程中,输入变量接收主程序传递的值,但不能对其进行赋值。
参数名 OUT 数据类型;
定义一个输出参数变量,用于从存储过程获取数据,即变量从存储过程中返回值给主程序。
在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。在存储过程中,参数变量只能被赋值而不能将其用于赋值,在存储过程中必须给输出变量至少赋值一次。
参数名 IN OUT 数据类型 DEFAULT 值;
定义一个输入、输出参数变量,兼有以上两者的功能。在调用存储过程时,主程序的实际参数只能是一个变量,而不能是常量或表达式。DEFAULT 关键字为可选项,用来设定参数的默认值。在存储过程中,变量接收主程序传递的值,同时可以参加赋值运算,也可以对其进行赋值。在存储过程中必须给变量至少赋值一次。
如果省略IN、OUT或IN OUT,则默认模式是IN。
00、
总结:
1、在定义变量名字的时候,一定要注意变量名字不可以是关键字
2、创建存储过程的时候,参数的数据类型不可以指定精确数据类型。例如,只能使用number、varchar2,而不可以使用varchar2(4)
orcale存储过程简介
最新推荐文章于 2022-05-17 17:03:49 发布