• ORACLE中的包和包体


    用一个增删改查用户的例子来演示包(java中接口)和包体(java中实现类)

    创建包

    create or replace package pkg_userinfoService
    as
       --定义用户的结构体
       type userInfo is record (
            id number,--用户id
            name varchar2(20),--用户名称
            sex number,--用户性别 0 男 1 女
            age number,--年龄
            sal number--薪水
       );
       --添加用户
       function addUser(ui in userInfo)
       return number;
       --创建用户表
       procedure createUserTable;
       --删除用户
       function delUser(id number)
       return number;
       --更改用户信息
       function updateUser(ui in userInfo)
       return number;
    end pkg_userinfoService;

    创建包体

    create or replace package body pkg_userinfoService
    as
       --添加用户
       function addUser(ui in userInfo)
         return number
       as
       begin
         pkg_userinfoService.createUserTable();
         execute immediate 'insert into TB_USERINFO values('''||ui.id||''','''||ui.name||''','''||ui.sex||''','''||ui.age||''','''||ui.sal||''')';
         return 1;
       end;


       --创建用户表
       procedure createUserTable as
         ifExist number;
         begin
             select count(*) into ifExist from tab where tname='TB_USERINFO';
             if ifExist=0 then
                execute immediate 'create table TB_USERINFO(id number,--用户id
                                        name varchar2(20),
                                        sex number,
                                        age number,
                                        sal number)';
             end if;
         end;
       --删除用户
       function delUser(id number)
       return number
       as
       begin
          pkg_userinfoService.createUserTable();
          execute immediate ' delete from TB_USERINFO where id='||id;
          return 1;
       end;
       --更改用户信息
       function updateUser(ui in userInfo)
       return number
       as
       begin
          pkg_userinfoService.createUserTable();
          execute immediate ' update TB_USERINFO set name='''||ui.name||''',sex='''||ui.sex||''',age='''||ui.age||''',sal='''||ui.sal||''' where id='''||ui.id;
          return 1;
       end;
    end pkg_userinfoService;


    调用方式

    declare  ui pkg_userinfoService.userInfo;
    rest number;
    begin
      ui.id:=1;
      ui.name:='jiaozi';
      ui.sex:=1;
      ui.age:=10;
      rest:=pkg_userinfoService.addUser(ui);
    end;








  • 相关阅读:
    3个同一行div的摆放div
    Android 项目开发
    iOS 8
    iOS 8
    __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
    高德百度坐标系转换方法
    高德百度坐标系转换方法
    在iOS开发中使用icon font的方法
    在iOS开发中使用icon font的方法
    UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331266.html
Copyright © 2020-2023  润新知