zoukankan      html  css  js  c++  java
  • 一个简单的存储过程

    创建一个简单的存储过程
    其中涉及到是基本的传参,定义参数,参数赋值,条件语句,循环语句,用游标遍历等基本语法

        --创建一个存储过程 
        create or replace procedure addgoods(    -- 传入两个变量,一个输入变量,一个输出变量,输出变量用来作为返回值
                gname1 user_table.user_skey%type , param1 out user_table.user_skey%type ) as   -- 把变量的类型跟表中字段类型保持一致
              id1 number(10);   -- 定义两个没有初始化的变量
              i number(10) ;
              cursor ee(v_user_skey Number) is select user_skey from user_table  where user_skey = v_user_skey; --游标 ,带参数 游标的参数一定不能跟表中的字段一样,且不区分大小写
              begin   -- 代码处理块 , 用begin end包起来
    
            begin    -- 处理异常  要把需要处理的代码块用BEGIN END包起来,在代码块中紧跟EXCEPTION处理
          select user_table.user_skey into id1 from user_table where user_table.user_skey = gname1;
          Exception           
          WHEN NO_DATA_FOUND THEN
            dbms_output.put_line('不存在任何记录');  -- db的输出语句,在output标签下显示输出信息
            ROLLBACK;
     	    RAISE;
          END;
    
       if id1 = 45 then   -- 判断语句
          begin
            dbms_output.put_line(gname1 || '的id是45');
          end;
       end if;
    
       if id1 <> 45 then
         begin
          dbms_output.put_line(gname1 || '的id是'||id1);
         end;  
       end if;
    
       param1:= id1;  -- 变量赋值
    
       i:= 1;
       while i < 10 loop   -- while 循环
         begin
             dbms_output.put_line('i的值是:' || i);
             i:= i + 1;
         end;
       end loop;
    
       i:= 1;
       for vvv in ee(999) loop  -- for循环,使用游标
       
           dbms_output.put_line('i的值为:'  || i);
           i:= i + 1;
           dbms_output.put_line('存在的id值有:' || vvv.user_skey); -- 这一行必须有,循环体不能为空
        
       end loop;
    
       dbms_output.put_line('111111');
    
    end addgoods;
    
    
    
    -- 调用存储过程
    begin
         addgoods(999);
    end;
    
    -- 使用代码块调用存储过程   只有这个调用有效,输出参数必须是一个变量
    declare
         user_skey number;
         user_id number ;
     begin
       user_skey:= 999;
       addgoods(user_skey,user_id);  -- 传入两个参数,一个输入参数,一个输出参数,输入参数必须初始化,输出参数是否初始化无所谓
       dbms_output.put_line('返回的值是:' || user_id);
     end;
    
     -- 在sqlcommand中运行
     exec addgoods(user_skey);
    

    create or replace procedure addgoods(
    gname1 user_table.user_skey%type) as 
      id1 number(10);
      i number(10) ;
      cursor ee(v_user_skey Number) is select user_skey from user_table  where user_skey = v_user_skey; --游标 ,带参数
      begin
    
        begin    -- 处理异常  要把需要处理的代码块用BEGIN END包起来,在代码块中紧跟EXCEPTION处理
          select user_table.user_skey into id1 from user_table where user_table.user_skey = gname1;
            Exception 
          
          WHEN NO_DATA_FOUND THEN
            dbms_output.put_line('不存在任何记录');
            ROLLBACK;
     	      RAISE;
        END;
    
       if id1 = 45 then
          begin
            dbms_output.put_line(gname1 || '的id是45');
          end;
       end if;
    
       if id1 <> 45 then
         begin
              dbms_output.put_line(gname1 || '的id是'||id1);
         end;  
       end if;
       i:= 1;
       while i < 10 loop
         begin
             dbms_output.put_line('i的值是:' || i);
             i:= i + 1;
         end;
       end loop;
       i:= 1;
       for vvv in ee(999) loop
       
           dbms_output.put_line('i的值为:'  || i);
           i:= i + 1;
           dbms_output.put_line('存在的id值有:' || vvv.user_skey); -- 这一行必须有,循环体不能为空
        
       end loop;
    
       dbms_output.put_line('111111');
    
    end addgoods;
    
    
    
    -- 调用存储过程
    begin
         addgoods(999);
    end;
    
    -- 使用代码块调用存储过程
    declare
         user_skey number;
         user_id number ;
     begin
       user_skey:= 999;
       addgoods(user_skey);
     end;
    
     -- 在sqlcommand中运行
     exec addgoods(user_skey);
    不积跬步无以至千里
  • 相关阅读:
    jython 访问数据库的方法
    Server 2008安装FTP的简单教程
    如何实现Android重启应用程序代码 ?
    android 应用程序自适应屏幕大小
    Android Dialog用法
    2008Server错误
    7种形式的Android Dialog使用举例
    ADB使用方法
    调用手机震动
    android小记之FTP文件上传
  • 原文地址:https://www.cnblogs.com/jinxiuze/p/8005394.html
Copyright © 2011-2022 走看看