zoukankan      html  css  js  c++  java
  • 存储过程

    什么是存储过程(或者存储过程有什么作用)

      之前我们写的PLSQL可以进行表的操作,判断、循环,无法重复调用。现在将一个个PLSQL过程存储起来的PLSQL就被称之为存储过程。

    语法:

      create or replace procedure  过程名称(参数列表) is
      begin

      end  [过程名称];

    我们可以以通过PL/SQL Developer来自行创建

      1、第一个“Hello Word”

    CREATE OR REPLACE PROCEDURE P_HELLO IS
    BEGIN
        DBMS_OUTPUT.PUT_LINE('Hello word');
    END P_HELLO;

      注意:(其中的is 可以换成as)

      它的调用执行

    declare
     
    begin
     p_hello;
    end;

      如需在黑框中显示:exec   p_hello

      2、带输入参数的

    --查询你某个员工(例如:7839号员工)的姓名和工资
    CREATE OR REPLACE PROCEDURE P_QUERYNAMEANDSAL(IN_ID IN EMP.EMPNO%TYPE) IS
        --声明变量
        V_NAME EMP.ENAME%TYPE;
        V_SAL  EMP.SAL%TYPE;
    BEGIN
        -- 查询emp表中某个员工的姓名和工资
        SELECT EMP.ENAME, EMP.SAL INTO V_NAME, V_SAL FROM EMP WHERE EMP.EMPNO = IN_ID;
    
        DBMS_OUTPUT.PUT_LINE('姓名:' || V_NAME || '工资:' || V_SAL);
    
    END P_QUERYNAMEANDSAL;

      3、带输出输入参数的

    --查询你某个员工(例如:7839号员工)的信息,将薪水返回
    CREATE OR REPLACE PROCEDURE P_QUERYSAL(IN_ID IN EMP.EMPNO%TYPE, O_SAL OUT EMP.SAL%TYPE) IS
    
    BEGIN
    
        SELECT EMP.SAL INTO O_SAL FROM EMP WHERE EMP.EMPNO = IN_ID;
    
    END P_QUERYSAL;

      调用

    DECLARE
        V_SAL EMP.SAL%TYPE;
    BEGIN
        P_QUERYSAL(7839, V_SAL);
        DBMS_OUTPUT.PUT_LINE(V_SAL);
    END;
  • 相关阅读:
    对路径“E:AnyWiseUnitBusiXtCalXtCal.SiteMain”的访问被拒绝。
    CentOS Docker 安装
    linux命令检查网络问题
    MYSQL命令(二)
    极简技术简录-HTTP
    Java遍历List、Map的集合方法
    jdbc连接数据库并插入一条带有日期的数据
    MYSQL命令(一)
    JDBC连接MySQL数据库批量插入数据
    观察者模式
  • 原文地址:https://www.cnblogs.com/karrya/p/11632762.html
Copyright © 2011-2022 走看看