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

Oracle存储过程详细教程「建议收藏」Oracle存储过程详细教程点关注不迷路,欢迎再访! 目录Oracle存储过程详细教程一.创建存储过程语法二.输出案例三.调用存储过程3.1声明declare关键字3.2不声明declare关键字3.3call四.带有参数的存储过程五.in,out参数问题六.异常写法七.循环7.1while循环7.2for循环八.基本正删改查一.创建存储过程语法createorrep…

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

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;

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于might_sleep的一点说明【转】

    关于might_sleep的一点说明【转】

    2022年3月5日
    32
  • Linux quotacheck失败

    Linux quotacheck失败  我找了多少个帖子才发现解决这个问题的啊…最终还是靠FQ找的这位大佬的文章http://www.2daygeek.com/quotacheck-error/#  当我在执行quotacheck-avug的时候出现如下的错误:quotacheck:无法从/dev/sdb1上的文件名猜测其格式,请在命令行中指定一个确切的格式。quotacheck:Ca…

    2025年8月15日
    3
  • 2021github仓库操作流程手册指南「建议收藏」

    2021github仓库操作流程手册指南「建议收藏」文章目录1.git操作2.git简介3.git安装4.git使用1.git初始化2.git设置用户信息3.git项目的拉取1.创建仓库2.本地初始化3.查看当前是否存在自己的账号信息并配置(包含步骤4)4.基础配置5.初始化内容6.开始引入自己的项目的地址7.更新操作8.git文件的添加保存和推送到github9.git文件的修改删除推送github10.gitpush操作每次都需要输入账号密码的解决办法5.总结至此git的仓库创建,仓库拉取到本地,文件的添加修改删除提交已经完成。其中遇到

    2022年7月16日
    19
  • 多种DLL注入技术原理介绍

    多种DLL注入技术原理介绍本文中我将介绍DLL注入的相关知识。不算太糟的是,DLL注入技术可以被正常软件用来添加/扩展其他程序,调试或逆向工程的功能性;该技术也常被恶意软件以多种方式利用。这意味着从安全角度来说,了解DLL注入的工作原理是十分必要的。不久前在为攻击方测试(目的是为了模拟不同类型的攻击行为)开发定制工具的时候,我编写了这个名为“injectAllTheThings”的小工程的大…

    2022年5月17日
    33
  • sql常用函数大全

    sql常用函数大全转载自:https://blog.csdn.net/mrtwofly/article/details/53939400一、数学函数ABS(x)  返回x的绝对值BIN(x)  返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x)  返回大于x的最小整数值EXP(x)  返回值e(自然对数的底)的x次方FLOOR(x)  返回小于x的最大整数值GREATEST(x1,…

    2022年6月22日
    26
  • 配置CDN加速域名「建议收藏」

    配置CDN加速域名「建议收藏」cdn域名加速配置教程,切记加速域名与源站域名不能是同一个。

    2022年8月19日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号