zoukankan      html  css  js  c++  java
  • plsql 存储过程 介绍。

    /* 7-22   知识总结?
      1. 存储过程
      2.函数
      3.包
    */
    
    
    
    /*1.什么是存储过程? 语法?
      存储过程:类似于Java中的方法;完成一个特定的功能,一系列代码
      
     (增删改操作和一些逻辑判断,select ... Into 变量)构成;存在哪?存在数据库服务器上
      
    特点:
    1、预编译
    2、可以重用
    3、单独的设置权限
    4、减轻网络的流量;
    
    二、创建过程:
    1、无参
    2、输入参数
    3、输入和输出参数
    
    三、调用过程:
    1、语句块中
    2、Call调用
    3、Execute 调用(命令行调用)
    
    */
    -- 
    create or replace  procedure re1
    as
    
    begin
      insert into emp (empno,ename,job,sal) values(9100,'嬴荡',  '秦王', 1200);
      insert into emp (empno,ename,job,sal) values(9101,'秦孝公','诸侯',1000);
      commit;   --设置自动提交
    end;
    
    
    create  or replace procedure re2
    as
    begin
      delete from emp where empno=9100;
      delete from emp where empno=9101;
      commit;
    end;
    
    -- 调用  无参数的存储过程。 
    --  1.begin end;  2.call 名字(); 3.命令行 excute 名字();
    begin
     re1;
    end;
    
    begin 
      re2;
    end;
    select * from emp;
    
    call re1();
    call re2();
    
    -- 创建有参数的储存过程? 
    create or replace  procedure re3(id1 number,id2 number)  --注意 这里是没有分号的!
    as
    begin
      insert into emp (empno,ename,job)values(id1,'紫霞','败家');
      insert into emp (empno,ename,job)values(id2,'至尊宝','赚钱');
      commit;
    
    end;
    
    create or replace  procedure re4(id1 number,id2 number)
    as
    begin
       delete from emp where empno in (id1 ,id2);
       commit;
    end;
    
    
    call re3(1111,2222);
    call re4(1111,2222);
    select * from emp;
    
    
    begin
      re3(1,2);
    end;
    
    begin 
      re4(1,2);
    end;
    
    -- 统计数据表中的个数  临时变量的作用
    create or replace  procedure re3(id1 number,id2 number)  --注意 这里是没有分号的!
    as
     v_count emp.empno%type; --定义临时变量 目的是统计一共多少数据
    begin
      insert into emp (empno,ename,job)values(id1,'紫霞','败家');
      insert into emp (empno,ename,job)values(id2,'至尊宝','赚钱');
      commit;
      select count(*) into v_count from emp ;
      dbms_output.put_line(v_count);
    end;
    
    call re3(1,2);
    call re4(1,2);
    
    
    select count(*) from emp;
    
    
    -- 录入后 统计数据表中的个数  定义 id 和姓名  四个参数  
    create or replace procedure re5(
      id1 in number,
      id2 in number,
      name1 in emp.ename%type,
      name2 in emp.ename%type,
      n1 out number    -- 返回的参数   定义的n1  
    
    )
    as
    begin
        insert into emp (empno,ename,job)values(id1,name1,'败家');
        insert into emp (empno,ename,job)values(id2,name2,'赚钱');
        commit;
        select count(*) into n1 from emp;
    end;
    
    declare
     v_count number(2);
    begin
      re5(3,4,'卢本伟','马飞飞',v_count);    
      dbms_output.put_line('总数量:'||v_count); 
    end;
    
    call re4(3,4);
    select * from emp;
  • 相关阅读:
    互斥锁属性
    Linux线程属性总结
    Linux 线程调度与优先级
    [置顶] 自旋锁和互斥锁的区别
    C语言中的未初始化变量的值
    在液晶屏里显示浮点数的方法 (sprintf 的妙用)
    消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
    在链表尾部添加数据
    Android 之 Matrix(转)
    Android退出应用最优雅的方式(改进版)
  • 原文地址:https://www.cnblogs.com/ZXF6/p/11228366.html
Copyright © 2011-2022 走看看