1.package 程序包说明(由函数、过程、变量、常量、游标和异常组成)

create or replace package pk_test is

  -- Author  : CHEN
-- Created : 2019/10/21 11:34:30
-- Purpose : package test -- Public constant declarations
--<ConstantName> constant <Datatype> := <Value>;
words varchar2(100) := 'To be a better man!';
-- Public variable declarations
--<VariableName> <Datatype>;
v_count varchar2(100); -- Public function and procedure declarations
--function <FunctionName>(<Parameter> <Datatype>) return <Datatype>;
function f_get_money(v_salary number, v_month number) return number;
procedure p_insertnumbers(nums in integer); end pk_test;

 

注意:可以将对象名加到END子句,这样会使在代码中逻辑关系更加清楚。 

2.package body 程序包体(程序包体包含了程序包说明中列出的所有公有对象的代码块和说明。程序包体还可以包括没有在程序包说明中列出的对象,这些对象被称为私有对象,私有对象只能由统一程序包体中的其他对象使用)

程序包体的名称应该与程序包说明的名称相同。

create or replace package body pk_test is

  -- Private type declarations
--type <TypeName> is <Datatype>; -- Private constant declarations
--<ConstantName> constant <Datatype> := <Value>; -- Private variable declarations
-- <VariableName> <Datatype>;
-- Function and procedure implementations
function f_get_money(v_salary number, v_month number) return number is
-- <LocalVariable> <Datatype>;
begin
--<Statement>;
return v_salary * v_month;
end;
procedure p_insertnumbers(nums in integer) is
nums_a integer(5) := nums;
begin
LOOP
insert into t3 values ('test', sysdate);
    commit;
nums_a := (nums_a - 1);
exit when nums_a < 1;
end loop;
end p_insertnumbers;
end pk_test;

准备:

create table T3
(
ACTION VARCHAR2(100),
A_TIME TIMESTAMP(6)
)

  

调用:

truncate table  t3;
select * from t3;
select pk_test.f_get_money(1000,12) from dual;
call pk_test.p_insertnumbers(5);
select * from t3;

 结果:

        

注意:PLS-00363: expression 'nums' cannot be used as an assignment target

    oracle中不能为in型的变量赋值,所以需要建一个变量,让它等于in 的变量

Oracle package demo 包的更多相关文章

  1. C#/java 执行oracle package

    使用pl/sql创建package CREATE OR REPLACE PACKAGE FirstPage is type outlist is ref cursor; Procedure p_get ...

  2. 使用Oracle的DBMS_SQL包执行动态SQL语句

    引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle ...

  3. ORACLE之UTL_FILE包详解

    1 Utl_File包简介Oracle的UTL_FILE包用来实现对磁盘文件的I/O操作.(1)Oracle10g之前的版本需要指定utl_file包可以操作的目录.      方法:        ...

  4. Oracle数据库程序包全局变量的应用

    1 前言  在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低<频繁读取临时表>或安全隐患< ...

  5. Oracle DBA管理包脚本系列(二)

    该系列脚本结合日常工作,方便DBA做数据管理.迁移.同步等功能,以下为该系列的脚本,按照功能划分不同的包.功能有如下: 1)数据库对象管理(添加.修改.删除.禁用/启用.编译.去重复.闪回.文件读写. ...

  6. Oracle Package的全局变量与Session

    Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一 ...

  7. oracle存储过程学习---包的概念

    转自:http://www.iteye.com/topic/1111793 一.包的概念   类似于一个容器,能打包相应的Pl/SQL变量.常量.函数.过程.复合数据类型等元素到这个容器内.用来限制  ...

  8. package.json包描述文件说明

    //commonjs包规范-说明 { "name": "leyi",//包名,不允许空格 "description": "hell ...

  9. ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python)

    ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要 ...

随机推荐

  1. 01-pandas基础-Series与DataFrame

    一.Series: 1,介绍:Series是以中类似于一维数组的对象,由一维数组以及与之相关的标签组成 特点:索引在左边,值在右边.在创建时,若我们未给数据指定索引,Series会自动创建一个0到N- ...

  2. BigDecimal.setScale 处理java小数点[转]

    BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余 ...

  3. ASP.NET MVC 下拉的使用(ViewData传递)

    C#部分 public void GetViewData() { List<string> data = new List<string>(); data.Add(" ...

  4. COUNT 和 IFNULL函数

    用COUNT函数: mysql> SELECT count(one) FROM tb_test;+------------+| count(http://www.amjmh.com/v/BIBR ...

  5. VMware 虚拟机的虚拟磁盘编程知识点扫盲之一

    目录 目录 前言 VMware 虚拟机文件类型 VMware 虚拟机的快照 Quiseced Snapshot Quiseced Snapshot 的创建过程 创建快照 创建快照的执行过程及原理 删除 ...

  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_1_使用Properties集合存储数据,遍历取出集合中的数据

    map下面的实现类叫做Hashtable Properties是唯一和IO流相结合的 讲解 代码

  7. 测开之路一百零一:jquery文字特效、动画、方法链

    文字特效 html内容 1.卷起/展开 2.隐藏/显示 3.淡入淡出 <!DOCTYPE html><html lang="en"><head> ...

  8. Jmeter之完整的HTTP接口测试

    目前很多接口都是基于HTTP的,所以针对HTTP接口测试的了解很重要,下面就简单说明一下,一个基于Jmeter上HTTP接口测试需要的内容. 一.一个HTTP接口测试需要最基础的内容 如下: 简单说明 ...

  9. 打印流PrintWriter

    * 打印流 * 字节流打印流 PrintStream * 字符流打印流PrintWriter * * 打印流的特点: * A:只有写数据的,没有读取数据,只能操作目的地,不能操作数据源 * * B:可 ...

  10. Android Studio 连接夜神模拟器

    网上找到的解决是需要我们 然后运行cmd命令,cd到夜神安装目录,执行命令 nox_adb.exe connect 127.0.0.1:62001