一、包的概念
?? 类似于一个容器,能打包相应的Pl/SQL变量、常量、函数、过程、复合数据类型等元素到这个容器内。用来限制
?? 对这些内容的访问权限。
二、包的构成。
?? 包通常由两部分组成,分别为包头和包体 。
?? 包头:里面通常写上述元素的声明,相当于应用程序的接口。
?? 包体:里面通常写上述元素的实现,相当于应用程序的具体实现。
?? 包头和包体分别作为数据库对象被保存在数据库内。
三、包的特性
? 1、包本身不能被调用,被参数化,只能调用包中的具体元素。
? 2、当第一次调用一个包中的元素时,整个包被载入内存,下一次再调用包中的相应元素时,省略了磁盘操作。
? 3、用户只能访问包头,而不能访问包体。
? 4、包头可以在没有包体的情况下单独存在,而包体不可以。
四、公有元素、私有元素和局部元素。?
?? 公有元素:只要在包头中声明的元素,即为公有元素,在包的外部都可以访问得到。
?? 私有元素:在包体中出现而包头中没有出现的元素,即为私有元素,在包的外部访问不到。
?? 局部元素:在包体的某一个过程或者函数中声明的元素,即为局部元素,只能在包体的这个过程和函数中使用。
五、如何编辑一个包。
? 1、new Sql-window
? 2、new program-window ->Package
? 3、new command-window
六、创建包的语法
? 1、创建包头:
? Create Or Replace Package 包名 is|As
?????????? 公有元素的声明;
??? pl/sql块
? 2、创建包体:
??? Create Or Replace Package Body 包名 is|As
?????????? 私有元素的声明
?????????? 公有元素的实现;
???? pl/sql块
七、包的调用
??? 和以前调用方式的区别是:在调用的元素名前面加上? '包名.'??
八、包的特性:
? 1、无体包:只有包头没有包体的包。通常只写常量的声明。??
? 2、包的重载特性:在同一个包里,函数或过程名相同,参数列表不同。
? 3、包的前向声明:
九、删除包
? 删除包头:
? Drop Package 包名;--包头和包体都被删除
? 删除包体
? Drop Package Body 包名; --只删除包体。
? 当修改包头时,包头和包体需要全部重新编译,如果只修改包体,包头不需要重新编译。??
十、动态SQL:在运行期间才能明确下来操作的是哪个数据库对象.
??? 静态SQL:在编译之前就已经明确操作的是哪个数据库对象。
十一、本地动态SQL:
??? Execute Immediate '动态SQL' [Into 变量列表] [Using 参数列表];
??? 变量列表:用来做Select语句赋值的。、
??? 参数列表:用来填充SQL中参数的。
详细解决方案
PL/SQL(oracle)八_包
热度:71 发布时间:2016-05-05 14:51:17.0
相关解决方案
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle 安插 LONG VARCHAR 类型数据
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运,该怎么解决
- 求解:gridview行值的计算并绑定有关问题(asp.net+oracle)
- Oracle.DataAccess 执行多条sql语句,该如何解决
- VS10连接Oracle的有关问题:"Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发错误
- System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。
- asp.net oracle 参数化 模糊查询出错,该怎么处理
- Oracle-参数查询有关问题
- oracle,insert 语句插入一条记录后要求,返回主键id値。解决思路
- Oracle 10g下的SQL语句,有点难度.请~[同时向朋友们道歉~]
- 月统计(oracle)解决办法
- 在线紧急等一sql语句(oracle),该怎么处理
- 面试问,为什么jsp+oracle,asp+sql server这样来搭配?该如何处理
- oracle 连接数据库该如何写语句的
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
- oracle 防sql注入有关问题!
- 求 Oracle Database Server 'TNS Listener'远路数据投毒漏洞 补丁
- oracle 客户端链接服务端的方式?该如何解决