zoukankan      html  css  js  c++  java
  • Oracle系列之包

    涉及到表的处理请参看原表结构与数据  Oracle建表插数据等等

    建包

    -- 建立包头
    create package mypkg is
    procedure set_ctx(p_name in varchar2, p_value in integer);
    --不需要初始化
    --procedure init;
    end;
    /

    建立包体

    create or replace package body mypkg is
    procedure set_ctx(p_name in varchar2, p_value in integer) as
    begin
    --'myctx' 是全局上下文名称
    --与建立上下文中的myctx一致
        dbms_session.set_context('myctx', p_name, p_value, NULL, NULL);
    end;
    begin
      null;
    end;
    /

    设置值

    call mypkg.set_ctx('var1', 1234);
    call mypkg.set_ctx('var2', 2234);

    查询

    select sys_context( 'myctx', 'var1' ) var1,
           sys_context( 'myctx', 'var2' ) var2
    from dual;

    --创建包。声明该包有一个过程update_sal,声明该包有一个函数annual_income:

    create package fj_package is
    procedure update_sal(name varchar2,newsal number);
    function annual_income(name varchar2) return number;
    end;
    /

    --给包fj_package实现包体 ,来修改某个雇员的工资或者查询某个雇员的工资

    create or replace package BODY fj_package is 
    procedure update_sal(name varchar2, newsal number) is 
    begin 
    update tb_Employee set sal = newsal where ename = name; 
    end; 
    function annual_income(name varchar2) return number is 
    annual_salary number; 
    begin 
    select sal * 12 + nvl(comm, 0) into annual_salary from tb_Employee where ename = name; 
    return annual_salary; 
    end; 
    end; 
    /
    call fj_package.update_sal('SCOTT', 1400);--调用
  • 相关阅读:
    alpha冲刺—Day8
    alpha冲刺—Day7
    alpha冲刺—冲刺计划&代码规范
    Linux安装jdk
    chrome插件开发-notification API注意事项
    VSCode远程连接Docker
    Idea发布项目到Docker
    开发环境配置
    Java设计模式之《单例模式》及应用场景
    使用Docker安装jenkins
  • 原文地址:https://www.cnblogs.com/tufujie/p/5074318.html
Copyright © 2011-2022 走看看