Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

1. 包中作用域种类说明以及声明位置

a. publish、private、locavariable 三种类型,当然每种类型包括了变量、函数、类型等。
     b. publish类声明在非包体中(不带body的)
private类声明在包体中
locavariable类声明在包中函数、过程对象里面的

2. 作用域说明

a. publish类,包外可以使用,可以进行取值、赋值操作,每次使用本变量时,包体中的begin-end模块会被初始化,同时此类变量生存周期是会话的生存周期,当包被重新编译,此变量将被重新初始化,否则只初始化一次。
     b. private类,包外不可以使用,作用域限定待包体中(带body的),生存周期是会话周期,周期内只被初始化一次,当包被重新编译,此变量将被重新初始化
     c. locavariable类变量,作用域是在函数、过程等对象用,与一般函数变量声明一致。

4. 注意:

包中的begin-end模块,在每次调用包的时候都需要进行初始化运行。

3. 测试demo

创建测试包

create or replace package testpkg is  -- Author  : ZHENGZY  -- Created : 2013/5/21 9:57:02  -- Purpose : 测试包的特性  -- Public constant declarations  Cons_Varchar constant varchar2(100) := 'TestPkg';  -- Public variable declarations  V_GlobVarchar varchar2(1000) := '1000';  V_Globinteger INTEGER;  -- Public function and procedure declarations  function fc_IncNumAndConnStr return varchar2;  end testpkg;  create or replace package body testpkg is  -- Private constant declarations  Cons_Varchar2 constant varchar2(100) := 'TestPkgPrivate';  -- Private variable declarations  V_GlobVarchar2 varchar2(1000);  V_Globinteger2 INTEGER;  -- Function and procedure implementations  function fc_IncNumAndConnStr return varchar2 is  V_Result varchar2(2000);  begin  V_globvarchar := V_globvarchar ||'  HELLO';  V_globinteger := NVL(v_globinteger,0) + 1;  V_Globinteger2 := nvl(V_Globinteger2,0) + 1;  V_Result :='V_Globvarchar=' ||V_Globvarchar||to_char(v_globinteger) || chr(13) ||  'V_globVarchar2=' ||V_globVarchar2 ||chr(13)||   'V_globVarchar3='||to_char(V_Globinteger2);  return(V_Result);  end;  begin  V_globVarchar2 := V_globVarchar2||'body ini.';
end testpkg;  

create or replace package testpkg2 is  -- Created : 2013/5/21 10:18:46  -- Purpose : 测试公共变量  -- Public function and procedure declarations  function fc_setvaluetovar return varchar2;  end testpkg2;
create or replace package body testpkg2 is  function fc_setvaluetovar return varchar2 is  result varchar2(200);  begin  testpkg.V_GlobVarchar := testpkg.V_GlobVarchar|| 'hello';  result := testpkg.V_GlobVarchar;  return(Result);  end;  begin  null;
end testpkg2;  

执行语句:

SELECT TESTPKG.FC_INCNUMANDCONNSTR FROM DUAL;
SELECT TESTPKG2.FC_SETVALUETOVAR FROM DUAL;   

首次执行结果:

V_Globvarchar=1000  HELLO1
V_globVarchar2=body ini.
V_globVarchar3=1  --
1000  HELLOhello  

第二次结果:

V_Globvarchar=1000  HELLOhello  HELLO2
V_globVarchar2=body ini.
V_globVarchar3=2  

1000  HELLOhello  HELLOhello 

转载于:https://www.cnblogs.com/wildfox/p/5791217.html

包的变量作用域测试说明相关推荐

  1. Go 学习笔记(6)— 变量定义、变量声明、变量作用域

    1. 变量定义 Go 语言变量名由字母.数字.下划线组成,其中首个字符不能为数字.声明变量的一般形式是使用 var 关键字: var varName dataType [= value] Go 语言和 ...

  2. 关于变量作用域的一点整理

    案例一: 1 var x=100; 2 alert(x); 3 //等同于 4 window.x=100; 5 window.alert(x); 理解:定义的全局变量都是window对象的属性,而一些 ...

  3. go语言复数包_go语言学习之包和变量详解

    前言 本文主要介绍了关于go语言之包和变量的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.包的概念 包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方 ...

  4. python中的变量的作用_Python中的变量作用域

    python中变量作用域包括: L (Local) 局部作用域,函数内部声明但没有使用global的变量 E (Enclosing) 闭包函数外的函数中,def或者lambda的本地作用域 G (Gl ...

  5. 微课|中学生可以这样学Python(6.3节):变量作用域

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第6章  函数 6.3  变量作用域 京东购买链接:https://item.jd.com/122 ...

  6. 当Python的lambda表达式遇上变量作用域

    ----------相关阅读---------- 1900页Python系列PPT分享一:基础知识(106页) 1900页Python系列PPT分享二:Python序列(列表.元组.字典.集合)(15 ...

  7. 函数二的变量作用域,多函数执行,返回值,函数参数,拆包,引用

    函数二 一.变量作用域 1.局部变量是函数内部变量,在函数临时保存数据,函数调用完则销毁,在函数外访问即报错 2.全局变量函数内外都可访问,当不同函数都要用到某一变量时,则可使用全局变量 def fu ...

  8. 【JavaScript 笔记】— 函数高级(变量作用域、解构赋值、方法、高阶函数、闭包、箭头函数、generator)

    JavaScript个人笔记 变量作用域 变量提升 全局对象 windows 命名空间 局部作用域 常量 解构赋值 使用场景 方法 apply 装饰器 高阶函数(Array) map reduce m ...

  9. Python 变量作用域与函数(4)

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  10. 【PHP自学笔记】变量的命名规则和变量作用域

    最近快结课了,也没啥考试,主要是在面试和准备面试,想着剩余时间自学点PHP. 主要参考的是菜鸟教程.w3school 命名规则 以$开头,$号后面是变量名,变量名区分大小写: 变量名开头必须是字母或者 ...

最新文章

  1. java flex 图片上传_flex上传图片到java服务器
  2. linqtoxml读写xml
  3. 【原创】STM32工程新建步骤
  4. 设计师值得学习的分类网站
  5. java 自己写一个模板_写一个java生成模板
  6. 科技范足 多家上市川企获省科技进步奖
  7. Mutex对象是操作系统级?
  8. 小米一键上锁工具_小米手机通用解锁教程
  9. 备份路由器配置文件到服务器,手把手教您如何进行备份Cisco路由器配置
  10. multus-cni之源码解析
  11. happen-before讲解
  12. Android开发——网络请求(一)网络请求的API、授权和方法
  13. java 求次方_Java递归例子——求x的y幂次方
  14. 玩转「Wi-Fi」系列之wpa_supplicant 介绍(七)
  15. 基于Vue+Express+Mysql开发的手机端电影购票系统(附源码)
  16. 如何解决飞思卡尔芯片使用监控程序产生的冲突问题
  17. 店宝宝:第一时间发布!网店店主必看
  18. linux系统服务器忘记密码怎么办
  19. 产品管理精华:第三,需求调研,从用户出发
  20. c语言编程ABABCBABC,上海海事大学C语言程序设计练习题全题库

热门文章

  1. 动手写一个探测网络质量(丢包率/RTT/队形等)的工具
  2. KGB知识图谱深入挖掘金融行业的知识关联
  3. 多元思维模型——全学科及其核心思维模型
  4. selenium结合sikuliX操作Flash网页
  5. 深度解析:印度软件产业为何如此发达
  6. Kinect体感游戏开发思考
  7. lstm优点缺点_LSTM和易失性时间序列:优点和缺点
  8. 以预测股票涨跌案例入门基于SVM的机器学习
  9. 论初唐诗人的历史地位-上官仪、王勃、杨炯、陈子昂、杜审言
  10. 计算机公式算加减乘除教程视频,Excel快速计算加减乘除教程 Excel表格公式计算方法...