前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle存储过程详细教程「建议收藏」

Oracle存储过程详细教程「建议收藏」

作者头像
全栈程序员站长
发布2022-09-13 13:26:37
1.4K0
发布2022-09-13 13:26:37
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Oracle存储过程详细教程

目录

一 .创建存储过程语法

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

二.输出案例

代码语言:javascript
复制
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关键字
代码语言:javascript
复制
declare
begin
  myDemo01;
end;
3.2不声明declare关键字
代码语言:javascript
复制
begin
  myDemo01; --在此处也可使用myDemo01();完成存储过程的调用
end;
3.3call
代码语言:javascript
复制
call myDemo01();--call 存储过程名可完成调用,注意括号不能少

执行的结果如下所示:

在这里插入图片描述
在这里插入图片描述

四.带有参数的存储过程

代码语言:javascript
复制
create or replace procedure myDemo02(name in varchar,age in int)
as
begin
  dbms_output.put_line('name='||name||', age='||age);
end;

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

五.in,out参数问题

代码语言:javascript
复制
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类型。

执行的结果如下所示:

在这里插入图片描述
在这里插入图片描述

六.异常写法

代码语言:javascript
复制
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 循环
代码语言:javascript
复制
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循环
代码语言:javascript
复制
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();
在这里插入图片描述
在这里插入图片描述

执行的结果如下所示:

在这里插入图片描述
在这里插入图片描述

八.基本正删改查

代码语言:javascript
复制
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;

执行的结果如下所示:

在这里插入图片描述
在这里插入图片描述

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160877.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Oracle存储过程详细教程
    • 目录
      • 一 .创建存储过程语法
        • 二.输出案例
          • 三.调用存储过程
            • 3.1 声明declare关键字
            • 3.2不声明declare关键字
            • 3.3call
          • 四.带有参数的存储过程
            • 五.in,out参数问题
              • 六.异常写法
                • 七.循环
                  • 7.1while 循环
                  • 7.2for循环
                • 八.基本正删改查
                相关产品与服务
                对象存储
                对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档