77范文网 - 专业文章范例文档资料分享平台

PLSQL笔记(3)

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1. 存储过程(PROCEDURE) 答:创建过程:

CREATE [OR REPLACE] PROCEDURE proc_name [(arg_name[{IN|OUT|IN OUT}]TYPE, arg_name[{IN|OUT|IN OUT}]TYPE)] {IS|AS} procedure_body

1) IN: 表示该参数不能被赋值(只能位于等号右边); 2) OUT:表示该参数只能被赋值(只能位于等号左边); 3) IN OUT: 表示该类型既能被赋值也能传值;

2. 存储过程例子

答:CREATE OR REPLACE PROCEDURE ModeTest( p_InParm IN NUMBER, p_OutParm OUT NUMBER, p_InOutParm IN OUT NUMBER) IS

v_LocalVar NUMBER; /* 声明部分 */ BEGIN

v_LocalVar:=p_InParm; /* 执行部分 */ p_OutParm:=7;

p_InOutParm:=7; ... EXCEPTION

... /* 异常处理部分 */ END ModeTest;

3. 调用PROCEDURE的例子 答:1) 匿名块可以调;

2) 其他PROCDEURE可以调用; 例: DECLARE

v_var1 NUMBER; BEGIN

ModeTest(12, v_var1, 10); END;

注:此时v_var1等于7

4. 指定实参的模式

答:1) 位置标示法:调用时添入所有参数,实参与形参按顺序一一对应; 2) 名字标示法:调用时给出形参名字,并给出实参

ModeTest(p_InParm=>12, p_OutParm=>v_var1, p_Inout=>10); 注:a. 两种方法可以混用;

b. 混用时第一个参数必须通过位置来指定。

5. 函数(Function)与过程(Procedure)的区别

答:1) 过程调用本身是一个PL/SQL语句(可以在命令行中通过exec语句直接调用); 2) 函数调用是表达式的一部分;

6. 函数的声明

答:CREATE [OR REPLACE] PROCEDURE proc_name [(arg_name[{IN|OUT|IN OUT}]TYPE, arg_name[{IN|OUT|IN OUT}]TYPE)] RETURN TYPE {IS|AS}

procedure_body

注:1) 没有返回语句的函数将是一个错误;

7. 删除过程与函数

答:DROP PROCEDURE proc_name; DROP FUNCTION func_name;

第八章

1. 包

答:1) 包是可以将相关对象存储在一起的PL/SQL的结构; 2) 包只能存储在数据库中,不能是本地的; 3) 包是一个带有名字的声明; 4) 相当于一个PL/SQL块的声明部分;

5) 在块的声明部分出现的任何东西都能出现在包中; 6) 包中可以包含过程、函数、游标与变量;

7) 可以从其他PL/SQL块中引用包,包提供了可用于PL/SQL的全局变量。 2. 包头

答:1) 包头包含了有关包的内容的信息,包头不含任何过程的代码。 2) 语法:

CREATE [OR REPLACE] PACKAGE pack_name {IS|AS}

procedure_specification|function_specification|variable_declaration|type_definition|exception_declaration|cursor_declaration END pack_name; 3) 示例:

CREATE OR REPLACE PACKAGE pak_test AS

PROCEDURE RemoveStudent(p_StuID IN students.id%TYPE);

包有包头和包主体,如包头中没有任何函数与过程,则包主体可以不需要。

TYPE t_StuIDTable IS TABLE OF students.id%TYPE INDEX BY BINARY_INTEGER; END pak_test;

3. 包主体

答:1) 包主体是可选的,如包头中没有任何函数与过程,则包主体可以不需要。 2) 包主体与包头存放在不同的数据字典中。 3) 如包头编译不成功,包主体无法正确编译。

4) 包主体包含了所有在包头中声明的所有过程与函数的代码。 5) 示例:

CREATE OR REPLACE PACKAGE BODY pak_test AS

PROCEDURE RemoveStudent(p_StuID IN students.id%TYPE) IS BEGIN ...

END RemoveStudent;

TYPE t_StuIDTable IS TABLE OF students.id%TYPE INDEX BINARY_INTEGER; END pak_test;

4. 包的作用域

答:1) 在包外调用包中过程(需加包名):pak_test.AddStudent(100010, 'CS', 101); 2) 在包主体中可以直接使用包头中声明的对象和过程(不需加包名);

BY

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库PLSQL笔记(3)在线全文阅读。

PLSQL笔记(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/769853.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: