oracle 存储过程

本文介绍Oracle环境下存储过程的基础知识,包括如何创建与执行简单的存储过程、条件判断语句的使用等,并提供了具体的SQL示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


查询当前用户的存储过程:

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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值