Oracle程序包
程序包由两部分构成:规范(specification)和主体(body)。
创建表
create table PEOPLE
(
ID NUMBER primary key not null,
NAME NVARCHAR2(20) not null,
STATUS NVARCHAR2(3)
) insert into people (id,name,status) values(1,'福康','CLX');
insert into people (id,name,status) values(2,'陆晓','act');
insert into people (id,name,status) values(3,'王山','CLX');
insert into people (id,name,status) values(4,'刘迪','CLX');
insert into people (id,name,status) values(5,'张玉','CLX');
insert into people (id,name,status) values(6,'金山','CLX');
insert into people (id,name,status) values(7,'顺溜','CLX');
insert into people (id,name,status) values(8,'辞海','CLX');
insert into people (id,name,status) values(9,'陆珣','CLX');
insert into people (id,name,status) values(10,'晓笑','CLX');
规范:
create or replace package pkg_people as
peopleString varchar2(200);
peopleStatus nvarchar2(3) := 'CLX';
function get_people_string return varchar2;
procedure update_people(in_id in number);
procedure insert_people(in_id number,
in_name in nvarchar2,
in_status in nvarchar2);
procedure delete_people(in_id in number);
end pkg_people;
主体:
create or replace package body pkg_people as --函数get_student_string
function get_people_string return varchar2 is
begin
declare
cursor cu_people is
select name from people order by id;
people_name varchar2(20);
rowString varchar2(500); begin
open cu_people;
fetch cu_people
into people_name; while cu_people%found loop
rowString := rowString || people_name || ',';
fetch cu_people
into people_name;
end loop; return substr(rowString, 1, length(rowString) - 1);
end;
end get_people_string; --存储过程update_people
procedure update_people(in_id in number) as
begin
update people set status = peopleStatus where id = in_id;
commit;
end update_people; end pkg_people;
执行程序中函数/存储过程
--调用程序包中的函数get_people_string
select pkg_people.get_people_string() from dual ;
--调用程序包中的存储过程update_people()
begin
pkg_people.update_people();
end;
Oracle程序包的更多相关文章
- 20181220 Oracle程序包基本开发逻辑
做事情,开始也许比较迷茫,也可能工具不会,也可能语言不会,但不要害怕 多去思考而不是盲目的开始工作,盲目的听从,程序开发都是不断训练自己的思维能力. 做每件事情都是有意义的,思考为什么这么做,这么做的 ...
- ORACLE 程序包
程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成. 程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度. ...
- Oracle数据库程序包全局变量的应用
1 前言 在程序实现过程中,经常用遇到一些全局变量或常数.在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低<频繁读取临时表>或安全隐患< ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- Oracle编程入门经典 第11章 过程、函数和程序包
目录 11.1 优势和利益... 1 11.2 过程... 1 11.2.1 语法... 2 11.2.2 建立或者替换... 2 11.2 ...
- Oracle存储过程和程序包
一.为什么要用存储过程? 如果在应用程序中经常需要执行特定的操作,可以基于这些操作简历一个特定的过程.通过使用过程可以简化客户端程序的开发和维护,而且还能提高客户端程序的运行性能. 二.过程的优点? ...
- Oracle学习笔记十四 内置程序包
扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...
- Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包
子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...
- Oracle基础<4>--程序包
一:程序包定义(包括1.程序包规范 2.程序包主体) 程序包是一种数据库对象,它是对相关pl/sql 类型.子程序.游标.异常.变量和常量的封装. 1.程序包规范:可以声明类型.变量.常量.异常.游标 ...
随机推荐
- (POJ 3694) Network 求桥个数
题目链接:http://poj.org/problem?id=3694Description A network administrator manages a large network. The ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔
题目描述 苟利国家生死以,岂因福祸避趋之?作为ACM真正的粉丝,应该都听闻过汉诺塔问题,汉诺塔问题是这样的: 有三根柱子,编号A,B,C柱,初始情况下A柱上有n个盘子,小盘子在上大盘子在下,n个盘子大 ...
- 管理员取得所有权(复制以下代码粘贴至记事本然后把后缀名改为reg)
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\runas] @="获取权限" "NoWo ...
- 利用TCP 客户端---->服务端 传送文件到指定路径,并返回一个友好的回馈
首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: package com.TCP.java; import java.io.File; impor ...
- linux命令之vim使用-(转)vim的保存文件和退出命令
博客地址: http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html
- Nodejs微信接口
代码重要部分都已详细注释,test.js为实例,如果启动url请求,那么程序默认对json格式数据友好,如果有特殊需要,请自行修改返回数据的处理格式 大概功能简介为下: this._token 提供t ...
- 窗体位置设置StartPosition属性
有如下选项,分别含义如下: CenterParent 窗体在其父窗体中居中. CenterScreen 窗体在当前 ...
- 执行插入语句时直接返回插入信息的自增id,判断是否为空
insert into userinfo(UserName,UserPass,RegTime,email)values('a','b',GETDATE(),'123@qq.com');select @ ...
- 关于maven参数过滤
一.maven通过设置过滤器,可以使maven在编译打包时实现参数过滤的功能(详细配置说明略) <filters> <filter>../antx.properties< ...
- $.ligerDialog 操作
//关闭 $.ligerDialog.open 打开的弹窗 frameElement.dialog.close(); //关闭父窗口 parent.$.ligerDialog.close(); //关 ...