Oracle存储过程详细教程

Oracle存储过程详细教程

   点关注不迷路,欢迎再访!		

精简博客内容,尽量已行业术语来分享。
努力做到对每一位认可自己的读者负责。
帮助别人的同时更是丰富自己的良机。

一 .创建存储过程语法

create or replace procedure 存储过程名
as
begin
  ----------------------------
end;
注:
   在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;
   在视图(VIEW)中只能用AS不能用IS;
   在游标(CURSOR)中只能用IS不能用AS。

二.输出案例

create or replace procedure myDemo01
as
begin
  dbms_output.put_line('hello word, my name is stored procedure');
end;

as:关键字。
begin:关键字。
dbms_output.put_line(‘hello word, my name is stored procedure’); 输出内容。
end;关键字。

三.调用存储过程

3.1 声明declare关键字
declare
begin
  myDemo01;
end;
3.2不声明declare关键字
begin
  myDemo01; --在此处也可使用myDemo01();完成存储过程的调用
end;
3.3call
call myDemo01();--call 存储过程名可完成调用,注意括号不能少

执行的结果如下所示:
在这里插入图片描述

四.带有参数的存储过程

create or replace procedure myDemo02(name in varchar,age in int)
as
begin
  dbms_output.put_line('name='||name||', age='||age);
end;

注:在调用存储过程时,如果存储过程没有参数,调用时括号()可以不带。

五.in,out参数问题

create or replace procedure myDemo04(name out varchar,age in int)
as
begin
    dbms_output.put_line('age='||age);
    select 'ex_sunqi' into name from dual;
end;

declare
   name varchar(10);
   age int;
begin
   myDemo04(name=>name,age=>25);
   dbms_output.put_line('name='||name);
end;

注:in代表输入,out用于输出,参数默认类型是in类型。

执行的结果如下所示:
在这里插入图片描述

六.异常写法

create or replace procedure myDemo03
as
age int;
begin
  age:=1/0;
  dbms_output.put_line(age);
  --异常
  exception when others then
    dbms_output.put_line('error');
end;

call myDemo03();

执行的结果如下所示:
在这里插入图片描述

七.循环

7.1while 循环
create or replace procedure myDemo5
as
  n_count number := 0;
begin
  while n_count < 5 loop
    dbms_output.put_line(n_count);
    n_count := n_count + 1;
  end loop;
end;
 
begin
  myDemo5;
end;

执行的结果如下所示:
在这里插入图片描述

7.2for循环
create or replace procedure myDemo06
as
begin
 FOR USE in (select * from T_USER_INFO) loop
     if (USE.id<3) then
        dbms_output.put_line(USE.USER_NAME);
      end if;
  end loop;
end;

CALL myDemo06();

在这里插入图片描述
执行的结果如下所示:
在这里插入图片描述

八.基本增删改查

create or replace procedure mydemo07(ID in int, user_name in varchar,pssword in varchar, created_date in DATE,created_by IN varchar,UPDATED_date IN DATE,UPDATED_by IN  varchar,is_valid IN varchar)
as
begin
     insert into T_USER_INFO VALUES(ID,user_name,pssword,created_date,created_by,UPDATED_date,UPDATED_by,is_valid);
    --UPDATE  T_USER_INFO t SET t.USER_NAME='sunqi' WHERE t.ID=ID ;
    --DELETE  T_USER_INFO t WHERE t.ID=ID ; 
    commit; --提交
end;

begin
mydemo07(3,'ex_sunqi','666666',SYSDATE,'ex_sunqi',SYSDATE,'ex_sunqi','Y');
end;

执行的结果如下所示:
在这里插入图片描述

Oracle存储过程是一种在数据库中创建的可重用程序代码单元,可以接收参数并在数据库中执行特定的任务。学习Oracle存储过程需要具备一定的SQL语言基础和Oracle数据库基础知识。以下是Oracle存储过程学习教程的一些步骤: 1. 学习Oracle数据库基础知识:了解Oracle数据库的基本结构、安装和配置Oracle数据库、数据库管理和维护等内容。 2. 学习SQL语言基础:了解SQL语言的基本语法和常用操作,例如SELECT、INSERT、UPDATE、DELETE等。 3. 学习Oracle存储过程语法:了解Oracle存储过程的基本语法,包括创建存储过程、输入输出参数、返回值等。 4. 编简单的存储过程:通过编简单的存储过程来熟悉Oracle存储过程的基本操作和语法。 5. 学习存储过程的高级用法:了解存储过程的高级用法,例如异常处理、游标、动态SQL等内容。 6. 实践案例:通过实践案例来学习如何使用存储过程解决实际问题,例如提高数据库性能、实现复杂业务逻辑等。 推荐一些学习资源: 1. 《Oracle存储过程程序设计》(徐晓峰):该书详细介绍了Oracle存储过程的基本语法和高级用法,并提供了大量实例和案例。 2. Oracle官方文档:Oracle官方文档提供了关于Oracle存储过程详细介绍和教程,包括语法、使用方法、实例等。 3. Oracle官方培训课程:Oracle官方提供了针对Oracle存储过程的培训课程,可以在线学习或参加线下课程。 4. 网上开源教程:网上有很多免费的Oracle存储过程教程,可以通过搜索引擎进行查找。例如CSDN、博客园等网站提供了很多Oracle存储过程的学习资源。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值