- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLSQL编程幻灯片
第7章 PL/SQL编程 1. PL/SQL简介 PL/SQL(Procedure Language Structured Query Language )是一种过程化程序设计语言.从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL。它不是独立的编译器,而是与Oracle的许多工具集成在一起.可以使用PL/SQL的环境有: SQL*PLUS Oracle Forms Developer Oracle Reports Developer Oracle Application Server 目前的PL/SQL包括两部分,一部分是数据库引擎部分;另一部分是可嵌入到许多产品(如C语言,JAVA语言等)工具中的独立引擎。可以将这两部分称为:数据库PL/SQL和工具PL/SQL。两者的编程非常相似。都具有编程结构、语法和逻辑机制。工具PL/SQL另外还增加了用于支持工具(如ORACLE Forms)的句法,如:在窗体上设置按钮等。本章主要介绍数据库PL/SQL内容。 PL/SQL具有SQL所没有的过程化方面的特点: 具有模块化结构 允许使用定义标志符 能够用过程化语言控制结构进行程序设计 能够进行异常处理 PL/SQL特点 对SQL的扩充:允许使用全部的DML命令、游标控制命令、事物控制命令和全部SQL函数、运算符、伪列。 过程化和模块化:语句、过程、函数和包。 更好的性能:减少与Oracle的通信和对Oracle的调用。 可移植性:PL/SQL程序可以在几乎所有Oracle数据库服务器上正确地编译和运行。 与Oracle数据类型相集成,后台技术。 注意: PL/SQL不支持如下SQL命令。 数据定义命令(DDL):CREATE、DROP等。 会话控制命令:SET ROLE等。 系统控制命令:ALTER SYSTEM等 2. PL/SQL开发环境 文本编辑器、Oracle提供的SQL*Plus应用 或第三方开发工具包 都可以开发并且运行PL/SQL程序代码 例:/* 本例子仅是一个简单的删除例子, 不是实际应用。 */DECLAREv_empno number(4) := 8888;BEGINDELETE FROM emp WHERE empno=v_empno;COMMIT;END; (2)给变量赋值 给变量赋值有两种方式: ①直接给变量赋值 ②通过SQL :SELECT… INTO …或FETCH… INTO…给变量赋值 编程时使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化,这样的程序在一定程度上具有更强的通用性。 %TYPE—用于基本数据类型 %ROWTYPE –用于记录类型和表结构 作用:都是将其修饰的某个类型施加于某个变量,从而使二者保持一致. 例: 在某个PL/SQL块的声明部分,如下定义: DECLARE … Student_No INTEGER; … Course_No Student_No%TYPE; … 用户不知道Course_No的具体类型,但知道它是基于Student_No类型的,并随之变化. 再如: DECLESR … BrowsePath BookInfo.StorePath%TYPE … 表示: BrowsePath的数据类型是基于表BookInfo中的StorePath列的数据类型. 如: DECLEAR … InputStudent StudentInfo%ROWTYPE; … 表明:变量InputStudent是与表StudentInfo的字段一致的记录变量. %TYPE属性与%ROWTYPE的区别: %TYPE属性--用于基本数据类型; %ROWTYPE--用于记录类型和表结构等. ②表达式二: if condition then Statements_1 else Statements_2 end if 该表达式的功能为:如果条件为真执行then后的语句,否则执行else后的语句。 ③表达式三: if condition1 then Statements_1 elseif condition2 then Statements_2 else Statements_3 end if 该表达式的功能为:如果if后的条件成立,执行then后面的语句,否则判断elseif后面的条件,条件成立执行第二个then后面的语句,否则执行else后的语句。这是条件语句嵌套。 IF 可以嵌套,可以在IF 或IF ..ELSE语句中使用IF或IF…ELSE语句。 DBMS_OUTPUT.put与DBMS_OUTPUT.put_line的区别? decla
文档评论(0)