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;

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 微信小程序+PHP实现登录注册(手把手教程)[通俗易懂]

    微信小程序+PHP实现登录注册(手把手教程)[通俗易懂]1.环境说明环境版本PHP版本号:PHP7(!!!!注意本文基于PHP7环境开发,PHP5与PHP7有很多语法不兼容,如果您的本地环境为PHP5,则需修改PHP代码中不兼容语法部分)MySQL版本号:5.7.26开发工具PhPstudy8.1.0.5微信开发者工具Navicat122.创建user表首先创建用户表,这里以Navicat工具为例2.1新建数据库如果是第一次使用Navicat,需要新建连接点击左上角的连接->选择MySQL…设置

  • pucharm激活码(JetBrains全家桶)「建议收藏」

    (pucharm激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9071407CR5-eyJsaWNlb…

  • 前端开发常用网站_软件开发领域知识

    前端开发常用网站_软件开发领域知识87个前端必备开发网站来源:https://zhuanlan.zhihu.com/p/86777413来源:https://zhuanlan.zhihu.com/p/86777413来源:htt

  • 使用SecureCRTPortable的过程中出现的乱码问题解决方式

    使用SecureCRTPortable的过程中出现的乱码问题解决方式各位小伙伴好:可能大家都遇到过使用SecureCRTPortable【以下简称CRT】查日志的过程中出现乱码问题,下面超哥给各位普及下对于乱码的处理方式:1,有可能是当前连接的服务器显示的编码不是utf-8的编码,那样的话就直接修改字符编码就好了,2,当上面的方式不起作用的时候你需要检查下你服务器里的配置喽,第一:执行命令:more…

  • fopen函数打开文件失败原因_为什么打开文件失败

    fopen函数打开文件失败原因_为什么打开文件失败大家好,我是疯狂的比特,一个每天在互联网上种菜和砍柴的程序员今天给大家分享一个C语言初学者常见的一个问题。问题经常有人问我,我的C语言代码好好的,怎么就打开文件失败了呢?我们先来看看代码吧#include<stdio.h>#include<stdlib.h>intmain(){ FILE*pfRead=fopen(“test.txt”,”r”); if(pfRead==NULL) { printf(“打开文件test.txt失败啦\

    2022年10月14日
  • k8s解除service端口限制

    k8s解除service端口限制

发表回复

您的电子邮箱地址不会被公开。

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