• 基于oracle 的PL/SQL编程


    接上篇,游标使用的语句,相当于一段匿名的函数,窗口关闭了就不存在了。如果想要窗口关闭了,还能继续执行那段代码,就需要存储过程了: PLSQL是指一个个PLSQL的业务处理过程存储起来进行复用,这些被存储起来的PLSQL程序称之为存储过程。

    语法:

    plsql如何创建存储过程:

    1.  一个简单的存储过程,存储过程名称为 p_hello

    1 create or replace procedure p_hello is
    2 --如果需要,在此处声明变量
    3 begin
    4   dbms_output.put_line('hello world'); 
    5 end p_hello;
    6 -- 写完点击执行,这段语句会被存储起来

    注意,上面存储过程中 is  关键字可以换成as 关键字,一样的效果

    存储过程的调用:打开一个测试窗口,在begin 和end之间写上存储过程名,然后点击执行,就是调用了一次存储过程

       执行结果:

    1 begin
    2   -- Call the procedure
    3   p_hello;
    4 end;

     2.带入参存储过程:

     1 --查询并打印某个员工的姓名,薪水,要求调用时传入员工编号,控制台自动打印
     2 create or replace procedure p_empInfo(i_empno IN emp.empno%TYPE) as
     3   --声明变量
     4   v_ename emp.ename%TYPE;
     5   v_sal   emp.sal%TYPE;
     6 begin
     7   select ename, sal into v_ename, v_sal from emp where empno = i_empno;
     8   dbms_output.put_line('员工编号:' || i_empno || ',姓名:' || v_ename || ',薪水:' || v_sal);
     9 
    10 end p_empInfo;

    写完点击执行,编译该存储过程。

    调用:打开一个测试窗口,

    1 -- 调用带入参存储过程
    2 begin
    3   p_empInfo(7839);
    4   p_empInfo(7902);
    5 end;

    结果:

    3. 带入参及返回值的存储过程:输入员工号查询某个员工(7839)信息,要求将薪水作为返回值输出,给调用的程序使用,比如java 程序,c# .net程序等

    1 --输入员工号查询某个员工(7839)信息,要求讲薪水作为返回值输出,给调用的程序使用
    2 create or replace procedure p_empInfo2(i_empno IN emp.empno%TYPE, o_sal out emp.Sal%TYPE) as
    3 
    4 begin
    5   select sal into o_sal from emp where empno = i_empno;
    6   
    7 end p_empInfo2;

    在测试窗口中调用该存储过程,需要事先定义一个变量作为 存储过程返回值的接收参数,在打印语句中打印该参数的值,执行该语句, 输出结果5000.00 

    1 -- Created on 2018/6/3 by ADMINISTRATOR 
    2 declare 
    3   
    4   v_sal emp.sal%TYPE;
    5 begin
    6   p_empInfo2(7839,v_sal);
    7   dbms_output.put_line(v_sal);
    8     
    9 end;
  • 相关阅读:
    K2路由器刷机教程
    GitBook Editor使用教程
    source tree使用教程
    github与github网站push神器
    tgp助手开启逆战游戏无反应
    如何计算服务器指标参数
    排序--堆排序算法
    排序--希尔排序算法
    排序--直接插入排序算法
    排序--冒泡排序算法
  • 原文地址:https://www.cnblogs.com/enjoyjava/p/9131169.html
Copyright © 2020-2023  润新知