Oracle Database 10g基础教程 清华大学出版社

Slides:



Advertisements
Similar presentations
達悟族報告 作者 : 林琪崴, 許原碩 座號 :13 號,14 號 原碩負責 : 簡介, 傳說, 圖驣, 達悟族飛魚季, 琪崴 : 地理位置, 土地利用方式, 飲食文化, 豐收祭.
Advertisements

主讲:张天明 影像艺术工程师. 声音的聆听 指出听到的是什么物体发出的声音,这一 声音是在什么样的空间环境中传播的。 一、 答案: 1 、打气筒打气的声音 2 、手打打气筒给足球打气的声音 3 、手打打气筒给自行车轮胎打气的声音 4 、七次(七声)打气筒打气的声音 5 、(气流)摩擦的声音 6 、猪在发急时的叫声.
概念導向命題技巧與試題分析 臺灣師大地理系 陳國川. 教學評量是一種『抽樣調查』 實施教學評量時,需具備二項條件: 其一,瞭解命題的理論及其實踐的方法; 其二,瞭解各種題型的功能與命題方式。 壹、前言.
高峰植物園行前解說 2005/12/07 By 羽明. 陽性先驅物種 陽性植物 --- 陽光需求量大 陰性 ( 或耐蔭性 ) 植物 --- 陽光需求量少, 或 日照太強反而無法生存 先驅植物 --- 森林大火或土石流地震後產生的 裸露空地, 先生長出來的植物.
報 告 人 : 胡 嘉 琪 ˙ˇ˙ 、 王 紫 庭 = ˇ = 台灣夜市文化 作者: 郭明澤‧私立明道高中‧綜二 4 班 馬炯修‧私立明道高中‧綜二 4 班.
5 ˙ 1 第五章 生物的協調作用 5 ‧ 1 神經系統. 5 ˙ 1 人體的神經系統 1. 協調動物生理反應的系統: 神經 系統、 內分 泌 系統。 2. 神經系統負責 統整 和 協調 。分為 中樞 神經 和 周圍 神經。 (1) 中樞神經包括 腦 和 脊髓 。 (2) 周圍 神經包括 腦神經 和.
从《西游》看大学生的成长 主讲人:颜廷学 时间: 地点:演艺大楼流行剧场.
新员工培训 设计部 思安新能源股份有限公司 主讲人: 韩少华 时 间:
前言:河流的主要功能 1. 交通運輸 優點-運費低廉,維護費用低 缺點-速度慢,裝載費時,不能到達生產區或消費區 的末端,需要轉載。 尚受到河流網路,河口位置,水量變化,河床 狀況,冰封時期 2. 水資源系統.
幽夢影~張潮 小佑子工作室 關於《幽夢影》 作者張潮,記寫他個人對人生世事之體驗透悟的 書。 書中文字,全為「語錄」形式,屬於格言,也是 最精鍊的隨筆。 全書可分為九卷:論才子佳人、論人與人生、論 朋友知己、論讀書、論閒情逸趣、論立身處世、 談文論藝、論四時佳景、論花鳥蟲魚。
成人高考高起点 语文 冲刺班 主讲老师:邓君媚. 复习指导 高考语文含四大块内容: 语言知识和语言表达,古代诗文阅读,现 代文阅读,写作。 在全面复习的前提下,按照《考试大纲》 的要求,要做好思路整理,建立高考的整体框 架的工作。认真归纳整理基础知识、培养基本 能力,复习做到有的放矢。 复习指导.
老师,我可以不 爱 吗? 山东省淄博市张店区实验中学 杜桂兰 星期一的早晨,我紧张而又兴奋,因为 我的赛教课就要开始了。 这是一次级别很 高 的竞赛。
财政部 国家税务总局 中国人民银行(央行) 银监会 证监会 保监会. 法定存款准备金率 利率 税率 政府投资 楼继伟,周小川,易纲.
油蔴菜籽 指導老師:陳瑜霞 學生: 商設一甲 謝旻璇 車輛三乙 許勝傑 工管四甲 彭凱雲. 作者介紹: 廖輝英( 1948 年生)臺大中文系畢業。 從初三開始寫作,早期作品多以散文為主,大四 畢業時才暫時封筆。畢業後進了廣告界,成為廣 告文案好手,後為企畫主管,在廣告界縱橫十餘 年,也曾任職於建設公司,辦過社區報高雄一周。
蘭嶼情人洞傳說 林庭羽製 林庭羽製. 台灣的蘭花特別多,台灣有個蘭 嶼島,島上面的蘭花更多.所以 叫蘭嶼.這裡留下了動人的傳說。
職業訪談報告. 成員 : 鐘怡君 劉沛君 謝明達 賴映辰.
南台科大幼保實習課程 見習幼兒園心得報告 夜四技幼保四甲 998i0021 黃欣婷.
第一章 生殖 1‧2 無性生殖.
高教三十条 — 科技创新能力提升 科技创新能力提升工程方案起草小组 2013年7月4日.
你不可不知之 十二年國教二三事 教務主任:傅瑞琪.
鞋 楦 的 材 質.
最古怪的15種動物.
走! 一起去拜訪筏子溪.
台灣文學館之旅.
單車環島之旅 組員: 495D0072 胡閎智 495D0074 何冠緯 495D0020 王怡雯 495D0047 葉亭君
 耕地分割 及 執 行 內政部地政司 視察:林玲女.
~完備、周密、迅速 ~ 行政院農業部畜產試驗所
建筑设计基础讲义 (02-1) 建筑水彩渲染.
現代文學導讀 (中國現代散文發展的歷史軌道)
谨以此文—— 送给所有的人.
方 孝 孺 指喻.
保護地球人人有責:我能做的事 若想讓地球、人類社會明天會更好的話,可以考慮日常生活中採取什麼綠色行動,逐步恢復按上天設計大自然規定的方式做人,從而減少個人的「生態足印」,爭取可以延續的未來。 
小 王 子 <第六組> 組長: 謝汶芳 組員: 劉佳蓉 曹展愛 陳建妏
據說: 烏鴉有四種--- 巨烏 祥烏 鳳烏 慈烏~ 知恩 感恩 報恩.
桃園傅小弟遭刺青施虐事件 指導老師:高家斌 班級:幼保四甲 姓名與學號: 496I0004 程千芸、496I0010 林昀嫻
北科大學士學位 冷凍空調 甲、乙、丙 級技術士 三年工作經驗 大一階段 專精訓練 大三階段 回流訓練.
9.2.2 会计基本法律制度 一、会计机构和会计人员制度 二、会计核算制度
指導教授:林劭仁老師 組員:范紋綺、王宣惠、蔡雅玲 王思樺、陳可馨、吳芷容.
歡欣鼓舞過新年之四-跟年有關的故事 蘇澳國小 三年三班導師 張怡玲.
淺談中醫養生保健之道 國立中正大學醫務室 中醫科 楊明穎 醫師 中國醫藥學院 醫學士中醫師 高雄醫學院 藥學士藥師
只要有心 機器都可以成為食神 機電三甲  陳保翔  宓芳頡  雷家翔.
北極熊 華德學校 姓名:黄景山.
數學家 阿基米德 6C 李俊熙.
一般情况碰撞 1 完全弹性碰撞 动量和机械能均守恒 2 非弹性碰撞 动量守恒,机械能不守恒 3 完全非弹性碰撞 动量守恒,机械能不守恒.
一百零一年溪口國小 學校日 班級: 三年三班 教師: 張慈麟.
  中国技术交易信息服务平台 中国技术市场管理促进中心.
关注热点 2014年天猫双十一成交总额 571亿 点亮217个国家地区
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
Chap 13 視界與資料庫程式設計.
高等职业学校建筑设计类与艺术设计类专业骨干教师实践能力国家级培训
没有请柬该如何办 记者如何选取有利位置 着装 准备工作 提问时的注意事项
Oracle数据库 Oracle 子程序.
3.1能源资源的开发 ——以我国山西省为例.
PL/SQL程序设计 过程, 函数 Trigger 对象关系数据库技术.
第四章:触发器   触发器类似于过程、函数,因为它们都是拥有说明部分、语句执行部分和异常处理部分的有名的PL/SQL块。与包类似,触发器必须存储在数据库中,并且不能被块进行本地化说明。但是,对于过程而言,可以从另一个块中通过过程调用显式地执行一个过程,同时在调用时可以传递参数。对于触发器而言,当触发事件发生时就会显式地执行该触发器,并且触发器不接受参数。
ORACLE 第五讲 PL/SQL编程基础.
陳維魁 博士 儒林圖書公司 第七章 參數的傳遞 陳維魁 博士 儒林圖書公司.
Ch10 函式 網頁程式設計.
第 14 章 預存程序.
課程名稱:資料庫系統 授課老師:李春雄 博士
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
医院职工公费医疗系统.
ORACLE 第九讲 触发器.
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
參數 實際參數(Actual parameter)與形式參數(Formal parameter)
第9章 存储过程的创建和使用 9.1 存储过程简介 9.2 创建存储过程 9.3 修改存储过程 9.4 删除存储过程 9.5 执行存储过程.
面向对象系统分析与设计 交互图.
Principle and Technology of Database
Presentation transcript:

Oracle Database 10g基础教程 清华大学出版社 第14章 过程、函数和程序包 教学目标 教学难点和重点 教学过程 2019年5月4日

教学目标 理解和掌握过程、函数和程序包的基本概念和特点 理解在过程中使用输入和输出参数的特点 了解函数和过程的区别和联系 理解和掌握程序包的结构的特点 理解和掌握程序包的规范 2019年5月4日

教学难点和重点 过程、函数和程序包的基本概念和特点 在过程中使用输入和输出参数 函数和过程的区别和联系 程序包的结构 程序包的规范 2019年5月4日

教学过程 14.1 概述 14.2 过程 14.3 函数 14.4 程序包 2019年5月4日

14.1 概述 使用过程、函数和程序包代替PL/SQL程序块由许多好处,例如增强可扩展性、提高模块化水平、可重用性增强、可维护性加强、有利于抽象和数据隐藏、增强安全性等。 2019年5月4日

14.2 过程 从本质上来看,过程就是命名的PL/SQL程序块,它可以被赋予参数,存储在数据库中,然后由另外一个应用或PL/SQL例程调用。 14.2 过程 从本质上来看,过程就是命名的PL/SQL程序块,它可以被赋予参数,存储在数据库中,然后由另外一个应用或PL/SQL例程调用。 下面,详细讲述过程的创建、执行、安全、使用参数等内容。 2019年5月4日

创建或替换 [create [or replace]] procedure procedure_name[(parameter[, parameter]…)] [authid {definer | current_schema}]{is | as} [pragma autonomous_transaction;] [local_declarations] begin executable statements [exception exception handlers] end [procedure_name]; 2019年5月4日

执行过程 过程创建之后,就可以执行了。用户既可以从匿名PL/SQL程序块中直接调用,也可以在SQL*Plus中使用execute函数来执行。 execute函数可以简写为exec。 2019年5月4日

使用参数 过程可以进行参数化处理。参数可以是任意合法的PL/SQL类型。参数可以有3种模式,即in、out和in out。 in参数是输入参数,需要通过调用者传入,只能由过程来读取。也就是说,他们是只读值。这是参数行为中最常使用的模式,是没有给出参数模式指示器时的默认模式。in参数可以具有默认值,因此调用者不一定必须为其提供指定值。 out参数是输出参数,能够由过程写入。该参数适合用于过程向调用者返回多个信息。out参数没有默认值,也不能是常量或表达式,必须向out参数传递返回值。 in out参数同时具有in参数和out参数的特性,过程可以读取和写入他们的值。 2019年5月4日

局域声明 如同匿名PL/SQL程序块一样,过程也可以定义局域变量。这些定义紧随可选的参数列表之后。在匿名PL/SQL程序块中,它使用declare保留字开始。在过程声明中,由于使用了create or replace语法,所以不必再使用declare保留字了。在前面的swap过程示例中,l_temp就是一个局域变量。 除了局域变量之外,在局域声明部分还可以定义其他许多内容。用户可以定义记录、类型、数组,甚至还可以是其他过程。 2019年5月4日

14.3 函数 函数与过程非常类似,也是数据库中存储的命名PL/SQL程序块。创建函数与创建过程,都遵循同样的规则。函数与过程的安全方式和参数传递也相同。函数的主要特征是它必须返回一个值。这个返回值既可以是number或varchar2这样简单的数据类型,也可以是PL/SQL数组或对象这样复杂的数据类型。 2019年5月4日

语法 [create [or replace]] function function_name [(parameter[, parameter]…)] return datatype [authid {definer | current_schema}] [parallel_enable] [deterministic] {is | as} [pipelined [using implementation_type]] [aggregate [update value] {with external context} using implementation_type] [pragma autonomous_transaction;] [local declarations] begin executable statements [exception exception handlers] end [name]; 2019年5月4日

返回值 定义过程和定义函数的主要区别之一是,定义函数必须使用return子句返回数据。在定义函数的函数体中的任何地方,用户都可以return <expresson>;子句。 注意,这里的expression表达式要等于return数据类型。 图14-25是一个创建函数的示例。 2019年5月4日

确定性 如果对于给定的输入,函数总是会返回完全相同的结果,那么就称该函数具有确定性。例如,upper()函数具有确定性。如果向其输入Oracle Database 10g,那么它就返回ORACLE DATABASE 10G的结果。如果函数不能每次都返回相同的值,用户就不能将其作为确定性函数建立。 为了提示函数具有确定性,用户可以按照如图14-28所示的示例那样执行。 2019年5月4日

常见错误 根据经验,用户在开发函数时,经常会碰到下面一些错误: 忘记获取返回值; 试图定义不能返回值的函数; 定义没有返回数据类型的函数。 了解这些错误的形式将会帮助用户避免这些问题,并且可以在出现错误时快速修正他们。下面,通过几个示例讲述这些常见的错误。 2019年5月4日

14.4 程序包 程序包可以允许用户从逻辑上组织过程、函数、对象类型等各种内容。程序包通常由2部分组成:规范和主体。 14.4 程序包 程序包可以允许用户从逻辑上组织过程、函数、对象类型等各种内容。程序包通常由2部分组成:规范和主体。 规范是程序包的公共接口。 主体则包含了规范的实现以及所有私有例程、数据和变量。 本节讲述有关程序包的内容。 2019年5月4日

语法 如同函数一样,这里展示了定义程序包的完整语法。但是,限于篇幅,就不深入讨论所有的参数特性了。 定义程序包规范的语法如P320页所示 2019年5月4日

规范 程序包规范是程序包的接口。在规范中定义的所有内容都可以由调用者使用,并且可以由具有这个程序包execute权限的用户使用。在规范中定义的过程可以被执行,变量也可以被引用,类型能够被访问。这些是程序包的公共特性。 在如图14-32所示的示例中,我们将要使用两个过程print_ename()和print_sal(),定义一个被称为employee_pkg的程序包。 2019年5月4日

主体 程序包主体是用户实际编写的子例程,实现规范中定义的接口。规范中显示的所有过程和函数都必须在主体中实现。 在如图14-34所示的示例中,显示了如何实现employee_pkg程序包中的print_ename过程和print_sal过程。 2019年5月4日

程序包变量和其他声明 用户可以定义程序包的全局变量。这些变量既可以定义在程序包规范中,也可以定义在程序包的主体中。 定义在规范中的那些变量可以象规范中的过程和函数一样被引用,他们被称为公共变量。这些变量可以被任何具有程序包上execute权限的用户读取和修改。 在主体中定义的程序包级别的变量只能由主体中的过程实现来访问,这些变量被称为私有变量。 2019年5月4日