您的位置:首页 > 数据库 > Oracle

oracle 存储过程

2015-12-11 11:27 393 查看
查询当前用户的存储过程:

SELECT * FROM user_procedures


查询存储过程的语法错误信息:

SELECT * FROM user_errors


最简单的存储过程:在plsql中执行 上述sql即可创建,如果在sqlplus 中创建,则换行加"/" 创建。

CREATE OR REPLACE PROCEDURE pro_add(
-- 参数
num1 NUMBER, -- 默认为 in 输入
num2 OUT NUMBER -- out 为输出 in out 为输入且输出参数
)
AS
-- 定义变量 并赋值
num3 NUMBER := 11;
BEGIN
num2 := num1 + num3;
END pro_add; --也可以省略存储过程名称


执行存储过程:在plsql中执行 上述sql即可执行,如果在sqlplus 中执行,则换行加"/" 执行。sqlplus 中不显示结果,先得set serveroutput on

DECLARE
num3 NUMBER(10); -- 创建变量  注意要设置长度
BEGIN
pro_add(22,num3); -- 执行存储过程
dbms_output.put_line(num3); --  打印信息
END;


IF判断:

CREATE OR REPLACE PROCEDURE pro_test(
num1 IN OUT NUMBER
)
AS
num3 NUMBER := 100;
BEGIN
IF num1 != 0 THEN -- 可以没有括号
BEGIN -- 好像没有也可以
num1 := num3 / num1;
END;
END IF;
END;

IF else if  判断:

CREATE OR REPLACE PROCEDURE pro_test(
num1 IN OUT NUMBER,
fuhao IN VARCHAR
)
AS
num3 NUMBER(10) := 100;
BEGIN
IF (fuhao='+') THEN
num1:=num1+num3;
ELSIF(fuhao ='-') THEN -- 注意是elsif
num1:=num3-num1;
ELSE
num1:=num3*num1;
END IF;
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: