文档库 最新最全的文档下载
当前位置:文档库 › 创建过程、函数和包

创建过程、函数和包

创建过程、函数和包
创建过程、函数和包

创建过程、函数和包

目标:

创建和使用子程序

创建和使用程序包

过程:procedure

过程的参数类型有in、out、in out 类型的!!

函数:function

函数的参数类型只有in类型,不能有out、in out 类型的!!

包:package

set serveroutput on

Rem

=================================================================== Rem 1、创建简单的存储过程,如何执行存储过程

Rem

===================================================================

CREATE or replace procedure my_proc AS(用is也行)

BEGIN

DBMS_OUTPUT.PUT_LINE('这是一个简单的存储过程的例子!');

end my_proc;等价于end;

/

--下面是在PL/SQL中执行存储过程

begin

my_proc;

end;

/

--下面是在SQLPLUS中执行存储过程

execute my_proc;等价于 exec my_proc;

Rem

=================================================================== Rem 2、创建带参数的存储过程

Rem

===================================================================

create table t(

n_var number

);

CREATE OR REPLACE PROCEDURE insert_into_t(p_parm in number) AS BEGIN

DBMS_OUTPUT.PUT_LINE('---------start----------------------');

insert into t values(p_parm);

end insert_into_t;

/

--下面是在SQLPLUS中执行存储过程

execute insert_into_t(p_parm => 100);

execute insert_into_t(200);

Rem

=================================================================== Rem 3、创建带参数带默认值的存储过程

Rem

===================================================================

Rem OUT和IN OUT参数不能有默认值

CREATE OR REPLACE PROCEDURE

default_values(p_parm1 varchar2,

p_parm2 varchar2 default 'Lemon',

p_parm3 varchar2 default 'Oracle') AS BEGIN

DBMS_OUTPUT.PUT_LINE(p_parm1);

DBMS_OUTPUT.PUT_LINE(p_parm2);

DBMS_OUTPUT.PUT_LINE(p_parm3);

end default_values;

/

--下面是在SQLPLUS中执行存储过程,=>表示命名参数,可以采用无顺序传递exec default_values('.net',p_parm3 => 'Java');

Rem

===================================================================

Rem 4、创建带OUT参数的存储过程

Rem

===================================================================

Rem OUT和IN OUT参数不能有默认值

CREATE OR REPLACE PROCEDURE

emp_lookup(p_empno in number,

o_ename out emp.ename%type,

o_sal out emp.sal%type) AS

BEGIN

select ename,sal into o_ename,o_sal from emp where empno=p_empno;

exception

when NO_DATA_FOUND then

o_ename :='NULL';

o_sal :=-1;

end emp_lookup;

/

--定义两个变量

variable v_no number;//等价于var v_no number;

variable name varchar2(10);

variable sal number;

--下面是在SQLPLUS中执行存储过程

exec emp_lookup('7160',:name,:sal);

print name;

print sal;

--下面是在SQLPLUS中执行存储过程

exec emp_lookup('7160',:name,:sal);

--下面是PL/SQL程序块中调用

declare

l_ename emp.ename%type;

l_sal emp.sal%type;

begin

emp_lookup(7160,l_ename,l_sal);

dbms_output.put_line('员工姓名:'||l_ename);

dbms_output.put_line('员工薪水'||l_sal);

end;

/

Rem

=================================================================== Rem 5、创建带OUT参数的存储过程

Rem

===================================================================

Rem OUT和IN OUT参数不能有默认值

CREATE OR REPLACE PROCEDURE

newemp_lookup(p_empno number,

o_ename out emp.ename%type,

o_sal out emp.sal%type) AS

BEGIN

select ename,sal into o_ename,o_sal from emp where empno=p_empno;

exception

when NO_DATA_FOUND then

o_ename :='NULL';

o_sal :=-1;

end newemp_lookup;

/

CREATE OR REPLACE PROCEDURE

test_proc(para1 in number,

para2 out varchar2,

para3 in out varchar2)

AS

l_vartext1 varchar2(60);

l_vartext2 varchar2(70);

begin

l_vartext1 :='这是一个关于IN OUT参数的例子!';

l_vartext2 :='这是一个关于OUT参数的例子!';

IF PARA1=1 THEN

PARA2 :=l_vartext2;

DBMS_OUTPUT.PUT_LINE(PARA2);

ELSE

PARA3 :=l_vartext1;

DBMS_OUTPUT.PUT_LINE(PARA3);

END IF;

END;

declare

p1 varchar2(60);

p2 varchar2(70);

begin

test_proc(2,p1,p2);

end;

Rem

=================================================================== Rem 6、创建程序包:先建包规范,再建包主体。

Rem

===================================================================

REM =====================1、创建程序规范===============================

create or replace package dept_emp_pak is

type rec_emp is record(

deptno emp.deptno%type,

ename emp.ename%type,

sal emp.sal%type);

cursor cur_newemp(dept_no number)

return rec_emp;

procedure pro_newemp(dept_no number) ;

end dept_emp_pak;

REM ====================2、创建程序主体================================

create or replace package body dept_emp_pak is

cursor cur_newemp(dept_no number)

return rec_emp is

select deptno,ename,sal from emp

where deptno = dept_no;

procedure pro_newemp(dept_no number) is

l_recemp rec_emp; --定义一个记录

begin

open cur_newemp(dept_no);

loop

fetch cur_newemp into l_recemp;

exit when cur_newemp%notfound;

DBMS_OUTPUT.PUT_LINE('部门编号:'||l_recemp.deptno

||'员工姓名:'||l_recemp.ename

||'薪水:'||l_recemp.sal);

end loop;

close cur_newemp;

end pro_newemp;

end dept_emp_pak;

如:

综合案例:

实验6+过程_函数和程序...

实验6过程、函数和程序包 姓名:学号: 专业:班级: 同组人:无实验日期:2013/7/21 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 6.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 注:测试时,文件名请用全名(即包含路径,如:@c:\aa) 给出运行结果:

6.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果

select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果:

第1章随机信号概论特征函数随机过程统计特性

1.4 随机变量的特征函数 引言:分布函数:反映随机变量的统计规律性。 数字特征:反映、掌握分布函数的某些特征。矩是最主要的特征,但随着矩的阶数的 增高,计算机较麻烦,寻求一种有效的方法来计算。 特征函数:一种计算各阶矩的有效工具。特别是计算、处理多个随机变量,特征函数 显示其优越性一。 1.4.1 特征函数的定义 (1) 设X 是定义在概率空间),,(P F S 上的随机变量,它的分布函数为)(x F ,称juX e 的 数学期望)(juX e E 为X 的特征函数,记为)(u C X 。 当X 为离散型随机变量时,其特征函数为: ∑∞ ====1 )()()(i i jux juX X x X P e e E u C i 当X 为连续型随机变量时,其特征函数为: ?+∞ ∞ -==dx x p e e E u C jux juX X )()()( (2) 利用特征函数求概率密度函数 ? +∞ ∞ --= du u C e x p X jux )(21 )(π 证明:利用傅里叶变换与反变换关系可证明。 举例: 例1:求标准正态分布)1,0(N 的特征函数。 2 2 2221)()(u jux x juX X e dx e e e E u C - ∞ +∞ -- ===? π 1.4.2 特征函数的性质 (1) 1)(≤u C X 1)0(=X C (2) 两两相互独立的随机变量之和的特征函数等于各个随机变量的特征函数之积,即: 若∑== n k k X Y 1 ,式中n X X X Λ,,21为n 个两两相互独立的随机变量,则 ∏==n k X Y u C u C k 1 )()(

第10章 存储过程、函数和包

第10章存储过程、函数和包 存储过程(PROCEDURE)、函数(FUNCTION)和包(PAKAGE)是以编译的形式存储在数据库中的数据库的对象,并成为数据库的一部分,可作为数据库的对象通过名字被调用和访问。 存储过程通常是实现一定功能的模块;函数通常用于计算,并返回计算结果;包分为包头和包体;用于捆绑存放相关的存储过程和函数,起到对模块归类打包的作用。 存储过程、函数和包是数据库应用程序开发的重要方法,三者既有区别,也有联系。 ?存储过程和存储函数。 ?过程的参数和调用。 ?包和包的应用。 10.1 存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的。 10.1.1 认识存储过程和函数 和PL/SQL程序相比,存储过程有很多优点,具体归纳如下: ·存储过程和函数以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。 ·存储过程和函数可由数据库提供安全保证,要想使用存储过程和函数,需要有存储过程和函数的所有者的授权,只有被授权的用户或创建者本身才能执行存储过程或调用函数。 ·存储过程和函数的信息是写入数据字典的,所以存储过程可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL 程序)。一个重复使用的功能,可以设计成为存储过程,比如:显示一张工资统计表,可以设计成为存储过程;一个经常调用的计算,可以设计成为存储函数;根据雇员编号返回雇员的姓名,可以设计成存储函数。 ·像其他高级语言的过程和函数一样,可以传递参数给存储过程或函数,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。 存储过程和函数需要进行编译,以排除语法错误,只有编译通过才能调用。

随机过程参考题

2014-2015随机过程参考题 一.判断题 1.若随机变量的特征函数存在,则可以用它来刻画随机变量的概率分布. ( ) 2.对于独立的随机变量1,,n X X ,都有[]11 n n k k k k E X E X ==??=????∏∏. ( ) 3.若12(,, )n F x x x 是随机向量1=, ,)n X X X (的联合分布函数,则它对每个变量都是 单调不减的. ( ) 4.一个随机过程的有限维分布具有对称性和相容性. ( ) 5.非齐次泊松过程一定具有独立增量性和平稳增量性. ( ) 6.参数为λ的泊松过程第n 次与第1n -次事件发生的时间间隔n X 服从参数为n 和n λ的Γ分布. ( ) 7.复合P o i s s o n 过 程一定是计数过程. ( ) 8.若随机变量X 服从周期为d 的格点分布,则对自然数n 总有{}0P X nd =>.( ) 9.设,i j 是离散时间马氏链的两个互通的状态,则它们的周期相等. ( ) 10.离散时间马尔科夫链的转移矩阵的行和列的和均为1 . ( ) 11.一个随机变量的分布函数和特征函数相互唯一确定. ( ) 12.对独立的随机变量1, ,n X X ,都有[]1 1n n k k k k Var X Var X ==??=????∑∏. ( ) 13.一个随机过程的有限维分布族一定是具有对称性和相容性的分布族。 ( ) 14.若一个随机过程的协方差函数,s t γ()只与时间差t s -有关,则它一定是宽平稳过 程. ( ) 15.参数为λ的泊松过程中,第n 次事件发生的时刻n T 服从参数为λ的指数分布.( ) 16.非齐次泊松过程不具有独立增量性,但具有平稳增量性. ( ) 17.更新过程在有限时间内最多只能发生有限次更新. ( ) 18.更新过程的更新函数()M t 是t 的单调不增函数. ( ) 19.马尔科夫链具有无后效性. ( ) 20.Poisson 过程是更新过程. ( ) 具有对称性和相容性的分布族一定是某个随机过程的有限维分布族。 ( ) 21.若一个随机过程是宽平稳的,则它一定是严平稳的。 ( )

随机过程试题及答案

1.设随机变量X 服从参数为λ的泊松分布,则X 的特征函数为 。 2.设随机过程X(t)=Acos( t+),-t t 则 {(5)6|(3)4}______P X X === 9.更新方程()()()()0t K t H t K t s dF s =+-?解的一般形式为 。 10.记()(),0n EX a t M M t μ=≥→∞-→对一切,当时,t +a 。 二、证明题(本大题共4道小题,每题8分,共32分) P(BC A)=P(B A)P(C AB)。 2.设{X (t ),t ≥0}是独立增量过程, 且X (0)=0, 证明{X (t ),t ≥0}是一个马尔科夫过程。 3.设{}n X ,n 0≥为马尔科夫链,状态空间为I ,则对任意整数n 0,1

过程_函数和程序包

过程、函数和和序包 姓名:学号:专业:班级:同组人:实验日期: 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 9.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 给出运行结果:

9.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果 select * from Exam_Table; 给出执行的最后结果:

2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp1(v_in in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp1('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果: (2)-- in out类型参数 create or replace procedure mp(name_in in varchar2, name_out out varchar2, name_in_out in out varchar2) is begin dbms_output.put_line(name_in); name_out:= '返回的参数name_out是' || name_in; name_in_out := 'name_in_out是' || name_in || name_in_out; end; variable name_out varchar2(100); variable name_in_out varchar2(20); exec mp('11',:name_out,:name_in_out);

实验5 过程 函数 和程序包

大型数据库技术实验报告实验课程:大型数据库技术(Oracle) 专业 :班级: 姓名:学号:同组人:实验日期: 实验项目实验八过程、函数和和程序包 实验 类型 设计性实验 目的要求?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用?熟悉程序包的使用 (实验内容及步骤) 【实验步骤】 8.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序:成绩

给出运行结果: 8.1.存储过程 1.最简单的存储过程 (1)创建测试表 drop table empl; create table empl( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into empl values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000);

(4)查询执行结果 select * from empl; 给出执行的最后结果: 2.存储过程应用实例:列车购票与退票过程简单模拟 drop table ticket; create table ticket ( trainno varchar2(10), ticketnum varchar2(10), primary key (trainno,ticketnum) ); -- 存储过程声明 create or replace procedure init is begin for i in 1..100 loop insert into ticket values ('1111', to_char(i, '0000')); end loop; for i in 1..100 loop insert into ticket values ('2222', to_char(i, '0000')); end loop; for i in 1..100 loop insert into ticket values ('3333', to_char(i, '0000')); end loop;

随机过程复习提纲

第一章: 1. 填空 若X 1,X 2,…,X n 是相互独立的随机变量,且g i (t)是X i 的特征函数,i=1,2,…,n)则X=X 1+X 2+…X n 的特征函数g(t)= _g 1(t) g 2(t)…g n (t) 2.设P(S)是X 的母函数,试证: (1)若E(X)存在,则EX=P ′(1) (2)若D(X)存在,则 DX = P"(1)+ P ′(1)-[ P ′(1)]2 证明:(1)因为p (s )=s p k k k ∑ ∞ =0,则p ′(s )=s kp k k k 1 1 -∞ =∑,令s ↑1,得EX==∑∞ =1 k k kp p ′(1)。 (2)同理可证DX=p 〞(1)+ p ′(1) —[p ′(1)] 2 3.设X 服从B(n,p),求X 的特征函数g(t)及EX,EX 2,DX. 解:X 的分布列为P(X=k)=1k k n n C p q -,q=1-p ,k=0,1,2,...n, ()00 k n n n itk k k n k k it n k it g t e C p q C pe q pe q n n k k ? ??? ? ? ? ? ? ? --===+∑∑== 由性质得 ()() np it dt d i i EX t n q e p g =-=-==+0 , ()()() p n q e p dt d g i EX npq it i t n 2 2 2 2" 2 2 0+=-===+- ()npq DX EX EX =- = 2 2 4. 设X~N(0,1),求特征函数g(t). 解dx x t g e itx ?∞ +∞ --= 2 2 21)(π 由于e e x x x ix itx 22 2 2 =-,且 ?+∞?∞ +∞ --dx x e itx 2 2 21π ,故由积分号下求导公式有 ??? ?????-= =-∞ +∞-∞ +∞ --??de e ixe g x i dx x t ixt itx 22' 2 2 221)(π π

随机过程知识点

第一章:预备知识 §1.1 概率空间 随机试验,样本空间记为Ω。 定义1.1 设Ω是一个集合,F 是Ω的某些子集组成的集合族。如果 (1)∈ΩF ; (2)∈A 若F ,∈Ω=A A \则F ; (3)若∈n A F , ,,21 =n ,则 ∞ =∈1 n n A F ; 则称F 为-σ代数(Borel 域)。(Ω,F )称为可测空间,F 中的元素称为事件。 由定义易知: . 216\,,)5)4(1 1 1 F A A A i F A F B A F B A F i i n i i n i i i ∈=∈∈∈∈?∞ === ,,则,,,)若(; 则若(; 定义1.2 设(Ω,F )是可测空间,P(·)是定义在F 上的实值函数。如果 ()()()()∑∞=∞==???? ???=?≠=Ω≤≤∈1 121,,,31210,)1(i i i i j i A P A P A A j i A A P A P F A 有 时,当)对两两互不相容事件(;)(; 任意 则称P 是()F ,Ω上的概率,(P F ,,Ω)称为概率空间,P(A)为事件A 的概率。 定义1.3 设(P F ,,Ω)是概率空间,F G ?,如果对任意G A A A n ∈,,,21 , ,2,1=n 有: (),1 1 ∏===??? ? ??n i i n i i A P A P 则称G 为独立事件族。 §1.2 随机变量及其分布 随机变量X ,分布函数)(x F ,n 维随机变量或n 维随机向量,联合分布函数, {}T t X t ∈,是独立的。 §1.3随机变量的数字特征 定义1.7 设随机变量X 的分布函数为)(x F ,若 ? ∞ ∞ -∞<)(||x dF x ,则称 )(X E =?∞ ∞ -)(x xdF 为X 的数学期望或均值。上式右边的积分称为Lebesgue-Stieltjes 积分。 方差,()()[]EY Y EX X E B XY --=为X 、Y 的协方差,而 DY DX B XY XY =ρ 为X 、Y 的相关系数。若,0=XY ρ则称X 、Y 不相关。 (Schwarz 不等式)若,,2 2 ∞<∞

王银兵61332111-编写存储过程函数处理数据一(1)

实验十:存储过程、函数和程序包 实验目的: 1.能够正确编写存储过程 2.能够正确定义和使用存储过程参数 3.能够正确调用存储过程 实验要求: 1.按以下步骤完成如下操作,并对出现的现象进行解释 2.将命令和操作过程记录到实验过程记录中 实验步骤和方法: 1.启动本地Oracle服务器 2.以scott用户普通身份连接到PL/SQL developer 3.按要求编写PL/SQL存储过程,并用两种方式调用各个存储过程(在查询中尽量思 考,找到不一样的解题方案) 1)编写给每个员工发放额外补贴500的存储过程。(提示:COMM字段值增加500) 2)创建新增部门的存储过程INSERT_DEPT,部门号、部门名称和部门所在位置 作为参数。(关于参数存储过程的用法:in参数的使用)

1)创建一个通过部门编号返回部门名称的存储函数GET_DEPT_NAME。 2)创建比较两个数大小的函数,返回较大值。

5.按要求编写包: 1)创建管理部门信息的包pacdept,具有从dept表获得指定部门信息,修改部门 名称,添加部门信息的功能(注:各模块应包含异常处理模块)。(可以参考下 一页的案例1)

思考:1、在实验中是否懂得了存储过程以及带参数的存储过程的用法?

【案例1】创建管理雇员信息的包EMPLOYE,具有从EMP表获得雇员信息,修改雇员名称,修改雇员工资和写回EMP表的功能。 步骤1:登录SCOTT账户,输入以下代码,并编译: CREATE OR REPLACE PACKAGE EMPLOYE --包头部分 IS PROCEDURE SHOW_DETAIL; PROCEDURE GET_EMPLOYE(P_EMPNO NUMBER); PROCEDURE SAVE_EMPLOYE; PROCEDURE CHANGE_NAME(P_NEWNAME VARCHAR2); PROCEDURE CHANGE_SAL(P_NEWSAL NUMBER); END EMPLOYE; / CREATE OR REPLACE PACKAGE BODY EMPLOYE --包体部分 IS EMPLOYE EMP%ROWTYPE; -------- 显示雇员信息 -------- PROCEDURE SHOW_DETAIL AS BEGIN DBMS_OUTPUT.PUT_LINE('----- 雇员信息 -----'); DBMS_OUTPUT.PUT_LINE('雇员编号:'||EMPLOYE.EMPNO); DBMS_OUTPUT.PUT_LINE('雇员名称:'||EMPLOYE.ENAME); DBMS_OUTPUT.PUT_LINE('雇员职务:'||EMPLOYE.JOB); DBMS_OUTPUT.PUT_LINE('雇员工资:'||EMPLOYE.SAL); DBMS_OUTPUT.PUT_LINE('部门编号:'||EMPLOYE.DEPTNO); END SHOW_DETAIL; -------- 从EMP表取得一个雇员 --------- PROCEDURE GET_EMPLOYE(P_EMPNO NUMBER) AS BEGIN SELECT * INTO EMPLOYE FROM EMP WHERE EMPNO=P_EMPNO; DBMS_OUTPUT.PUT_LINE('获取雇员'||EMPLOYE.ENAME||'信息成功'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('获取雇员信息发生错误!'); END GET_EMPLOYE; --------- 保存雇员到EMP表 --------- PROCEDURE SAVE_EMPLOYE AS BEGIN UPDATE EMP SET ENAME=EMPLOYE.ENAME,SAL=EMPLOYE.SAL WHERE EMPNO=EMPLOYE.EMPNO; DBMS_OUTPUT.PUT_LINE('雇员信息保存完成!');

包和子程序(考试复习)

第七章包和子程序 1.1目标 1.过程和函数 2.过程和函数在plsql中调用 3.包 1.2知识点 1.过程和函数的作用,语法结构,参数的类型 2.在plsql语句块中调用函数和过程 3.包和包体的作用,语法结构 1.3难点 1.过程和函数的作用,语法结构,参数的类型 2.包和包体的作用,语法结构 1.4讲解内容 前面Plsql是匿名的存储过程,可以批量执行sql操作,并且可以加入条件控制,但是每次执行的plsql脚本不能在服务器端保存,而过程和函数可以将plsql语句块按功能划分,并保存起来,实现代码的复用,简单的讲,过程和函数是对plsql语句块的封装,是有名字的plsql 语句块。 1.4.1过程 过程语法结构: Create or replace procedure存储过程名称as←创建或重定义存储过程名称, Begin 执行过程的语句块… End; ←执行语句块用begin和end包围,相当于程 序中的{},表示语句块的开始和结束

Create or replace procedure存储过程名称(参数1,参数2)as←创建或重定义存储过程名称, Begin 执行过程的语句块… End; 要点: 1.参数默认是输入参数,注明out为输出参数in out为输入输出参数 2.没有参数的过程和函数,在过程名称后面不用带()括号 3.有参数的过程和函数,形式参数的数据类型不需要指定长度 4.局部变量放在as 和begin之间,begin和end之间是plsql语句块 示例: create or replace procedure pro1 as begin dbms_output.put_line('dd'); end; create or replace procedure pro2(v_val1 in out varchar2,v_val2 in out varchar2) as begin dbms_output.put_line('v_val1:'||v_val1); dbms_output.put_line('v_val2:'||v_val2); end; 1.4.2函数 函数的语法结构 和过程类似,区别在于多了一个返回值 Create or replace function函数名称return类型as←创建或重定义函数,必须带return 和返回一个数据的类型 Begin 函数执行的语句块 return返回值←返回值,和创建函数声明中返回类型要一致 End; 示例: create or replace function fun1 return varchar2as begin return'ddd'; end;

随机过程习题和答案

一、设二维随机变量(,)的联合概率密度函数为: 试求:在时,求。 解: 当时, = = 设离散型随机变量X 服从几何分布: 试求的特征函数,并以此求其期望与方差。 解: 所以: 袋中红球,每隔单位时间从袋中有一个白球,两个任取一球后放回,对每 对应随机变量一个确定的t ?????=时取得白球如果对时取得红球 如果对t e t t t X t 3)( .维分布函数族试求这个随机过程的一 设随机过程,其中是常数,与是相互独立的随机变量,服从区间上的均匀分 布,服从瑞利分布,其概率密度为 试证明为宽平稳过程。 解:(1) 与无关

(2) , 所以 (3) 只与时间间隔有关,所以为宽平稳过程。 是随机变量,且,其中设随机过程U t U t X 2cos )(=求:,.5)(5)(==U D U E .321)方差函数)协方差函数;()均值函数;(( 是其中,设有两个随机过程U Ut t Y Ut t X ,)()(32==.5)(=U D 随机变量,且 数。试求它们的互协方差函 ,试求随机过程是两个随机变量设B At t X B A 3)(,,+=的均值),(+∞-∞=∈T t 相互独若函数和自相关函数B A ,.),()(),2,0(~),4,1(~,21t t R t m U B N A X X 及则且立 为多少? 一队学生顺次等候体检。设每人体检所需的时间服从均值为2分钟的 指数分布并且与其他人所需时间相互独立,则1小时内平均有多少学生接受过体检在这1小时内最多有40名学生接受过体检的概率是多少(设学生非常多,医生不会空闲) 解:令()N t 表示(0,)t 时间内的体检人数,则()N t 为参数为30的

北大随机过程课件:第 3 章 第 6 讲 特征函数与母函数

特征函数、母函数、矩母函数 确定随机变量的概率密度函数/分布律 方便求解独立随机变量和的分布函数一类问题 可以通过微分运算求随机变量的数字特征 1.特征函数: 设随机变量ξ的分布函数为F(x), 概率密度函数为f(x), 称: (){}()()jt jtx jtx t E e e dF x e f x dx ξ∞∞?∞?∞ Φ===∫∫ 为随机变量ξ的分布函数的特征函数,或ξ的特征函数,特征函数是概率密度函数的付氏变换。 特征函数的性质: 1.特征函数与概率密度函数相互唯一地确定; 2.两个相互统计独立的随机变量和的特征函数等于各个随机变量特征函数的积; 3.特征函数与随机变量的数字特征的关系:()0()|{}k k k t t j E ξ=Φ= 典型随机变量的特征函数 1. 两点分布的特征函数:()jt t q pe Φ=+ 2. 二项式分布的特征函数:()()n jt t q pe Φ=+ 3. 几何分布:()1jt jt pe t qe Φ=? 4. 泊松分布(λ):(1)()jt e t e λ??Φ= 5. 正态分布2(,)N σ?:22 ()exp{}2t t j t σΦ=?? 6. 均匀分布[0,1]:1()jt e t jt ?Φ= 7. 负指数分布:()t jt λ λΦ=?

2.母函数 研究分析非负整值随机变量时,可以采用母函数法: 对于一个取非负整数值n=0,1,2,……,的随机变量x ,,其相应的矩生成函数定义为: 0()()n n z p x n z ∞ =Φ==?∑ (1/)z Φ是序列()p x n =的正常的z 变换 母函数的性质: 1. 两个相互统计独立的随机变量和的母函数等于各个随机变量的母函数的积。 2. 随机个独立同分布的非负整值随机变量和的矩生成函数是原来两个母函数的复合(见附 合泊松过程的应用) 3.()000(),()!1,2,k k z z z p z k p k ==Φ=Φ==" 通过母函数有理分式的幂级数展开等方法,得到随机变量的概率分布表达式。 3. ()1(){(1)(1)}1,2,k z z E X X X k k =Φ=??+="" 通过矩生成函数的微分可以得到随机变量的数字特征: 均值: '1{}()|z E X z ==Φ 方差: 22''''2111{}{}[{}]()|()|[()|]z z z D X E X E X z z z ====?=Φ+Φ?Φ 典型随机变量的母函数 1. 两点分布的母函数:()z q pz Φ=+ 2. 二项式分布的母函数:()()n z q pz Φ=+ 3. 泊松分布(λ):(1)()z z e λ??Φ= 4. 几何分布:()1pz z qz Φ=?

随机过程题库1

随机过程综合练习题 一、填空题(每空3分) 第一章 1.n X X X ,,21是独立同分布的随机变量,i X 的特征函数为)(t g ,则 n X X X 21的特征函数是 。 2. )(Y X E E 。 3. X 的特征函数为)(t g ,b aX Y ,则Y 的特征函数为 。 4.条件期望)(Y X E 是 的函数, (是or 不是)随机变量。 5.n X X X ,,21是独立同分布的随机变量,i X 的特征函数为)(t g i ,则 n X X X 21的特征函数是 。 6.n 维正态分布中各分量的相互独立性和不相关性 。 第二章 7.宽平稳过程是指协方差函数只与 有关。 8.在独立重复试验中,若每次试验时事件A 发生的概率为)10( p p ,以)(n X 记进行到n 次试验为止A 发生的次数, 则},2,1,0),({ n n X 是 过程。 9.正交增量过程满足的条件是 。 10.正交增量过程的协方差函数 ),(t s C X 。 第三章 11. {X(t), t ≥0}为具有参数0 的齐次泊松过程,其均值函数为 ; 方差函数为 。 12.设到达某路口的绿、黑、灰色的汽车的到达率分别为1 ,2 ,3 且均为泊松过程,它们相互独立,若把这些汽车合并成单个输出过程(假定无长度、无延时),相邻绿色汽车之间的不同到达时间间隔的概率密度是 ,汽车之间的不同到达时刻间隔的概率密度是 。 13.{X(t), t ≥0}为具有参数0 的齐次泊松过程,

n s X s t X P )()( 。 ,1,0 n 14.设{X(t), t ≥0}是具有参数0 的泊松过程,泊松过程第n 次到达时间W n 的数学期望是 。 15.在保险的索赔模型中,设索赔要求以平均2次/月的速率的泊松过程到达保险公司.若每次赔付金额是均值为10000元的正态分布,求一年中保险公司的平均赔付金额 。 16.到达某汽车总站的客车数是一泊松过程,每辆客车内乘客数是一随机变量.设各客车内乘客数独立同分布,且各辆车乘客数与车辆数N(t)相互独立,则在[0,t]内到达汽车总站的乘客总数是 (复合or 非齐次)泊松过程. 17.设顾客以每分钟2人的速率到达,顾客流为泊松流,求在2min 内到达的顾客不超过3人的概率是 . 第四章 18. 无限制随机游动各状态的周期是 。 19.非周期正常返状态称为 。 20.设有独立重复试验序列}1,{ n X n 。以1 n X 记第n 次试验时事件A 发生,且 p X P n }1{,以0 n X 记第n 次试验时事件A 不发生,且p X P n 1}0{,若有 1,1 n X Y n k k n ,则}1,{ n Y n 是 链。 答案 一、填空题 1.)(t g n ; 2.EX ; 3.)(at g e ibt 4.;Y 是 5. n i i t g 1 )(; 6.等价 7.时间差; 8.独立增量过程; 9. 0)()()()(3412 t X t X t X t X E 10.}),(min{2 t s X 11.t t ;; 12. 000 )(11t t e t f t 00)()()(321321t t e t f t 13. t n e n t !)( 14. n 15.240000 16.复合; 17.43 71 e

创建过程、函数和包

创建过程、函数和包 目标: 创建和使用子程序 创建和使用程序包 过程:procedure 过程的参数类型有in、out、in out 类型的!! 函数:function 函数的参数类型只有in类型,不能有out、in out 类型的!! 包:package set serveroutput on Rem =================================================================== Rem 1、创建简单的存储过程,如何执行存储过程 Rem =================================================================== CREATE or replace procedure my_proc AS(用is也行) BEGIN DBMS_OUTPUT.PUT_LINE('这是一个简单的存储过程的例子!'); end my_proc;等价于end; / --下面是在PL/SQL中执行存储过程 begin my_proc;

end; / --下面是在SQLPLUS中执行存储过程 execute my_proc;等价于 exec my_proc; Rem =================================================================== Rem 2、创建带参数的存储过程 Rem =================================================================== create table t( n_var number ); CREATE OR REPLACE PROCEDURE insert_into_t(p_parm in number) AS BEGIN DBMS_OUTPUT.PUT_LINE('---------start----------------------'); insert into t values(p_parm); end insert_into_t; / --下面是在SQLPLUS中执行存储过程 execute insert_into_t(p_parm => 100);

实验9过程-函数和程序包

实验9过程、函数和和序包 姓名:学号: 专业:班级: 同组人:实验日期: 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 9.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 给出运行结果: 9.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果 select * from Exam_Table; 给出执行的最后结果:

2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果: (2)-- in out类型参数 create or replace procedure mp(name_in in varchar2, name_out out varchar2, name_in_out in out varchar2) is begin dbms_output.put_line(name_in); name_out := '返回的参数name_out是' || name_in; name_in_out := 'name_in_out是' || name_in || name_in_out; end; 给出运行结果: (3)定义一个返回多个值的存储过程。 create or replace procedure p_test(name out varchar2,age out number,sex out varchar2,sal out number) is begin name:='scott'; age:=26; sex:='男'; sal:=8000; end; declare v_name varchar2(20); v_age number(10); v_sex varchar2(5); v_sal number(10); begin p_test(v_name,v_age,v_sex,v_sal); dbms_output.put_line(v_name);

第二章随机过程基本概念.

2随机过程的基本概念 §2.1 基本概念 随机过程是指一族随机变量 . 对随机过程的统计分析称为随机过程论 , 它是随机数学中的一个重要分支,产生于本世纪的初期 . 其研究对象是随机现象 ,而它特别研究的是随“ 时间” 变化的“ 动态” 的随机现象 . 一随机过程的定义 1 定义设 E 为随机试验, S 为其样本空间,如果 (1对于每个参数 t ∈ T , X(e,t为建立在 S 上的随机变量, (2对每一个 e ∈ S , X(e,t为 t 的函数,那么称随机变量族 {X(e,t, t∈ T, e∈ S}为一个随机过程,简记为 {X(e,t, t∈ T}或 X(t。 ((((({} {} [](为随机序列。时,通常称 , 取可列集合当可以为无穷。 通常有三种形式: 参数一般表示时间或空间, 或有时也简写为一个轨道。 随机过程的一个实现或过程的样本函数,或称随机的一般函数,通常称为为对于 :上的二元单值函数。 为即若用映射来表示注意:

t X T T T b a b a T T T T t X t X t e X T t e X S e S T t e X R S T t e X t 21321, , , , 3, 2, 1, 0, 1, 2, 3, , 3, 2, 1, 0T , . 4, . 3, , 2, :, . 1=---==??×?′?′L L L 为一个随机过程。则令 掷一均匀硬币, 例 , ( (cos (}, {1 t e X t X R t T e t H e t t X T H S =??íì====p2 随机过程举例 例 2:用 X(t表示电话交换台在 (0, t 时间内接到的呼唤的次数 , 则 (1对于固定的时刻 t, X(t为随机变量 , 其样本空间为{0, 1, 2, …..}, 且对于不同的 t, 是不同的随机变量 . (2对于固定的样本点 n, X(t=n是一个 t 的函数 . (即:在多长时间内来 n 个人 ? 所以 {X(t,t>0}为一个随机过程 . 相位正弦波。为随机过程,称为随机则令例 (

相关文档