Oracle中PL/SQL的块与表达式
一、块(Block)
是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成。
Declare /*定义部分――定义常量、变量、游标、例外、复杂数据类型*/ Begin /*执行部分――要执行的pl/sql语句和sql语句*/ Exception /*例外处理部分――处理运行的各种错误*/ end;
例:
declare v_ename varchar2(5); v_sal number(7,2); begin select ename,sal into v_ename,v_sal from emp where empno = &no; dbms_output.put_line('雇员名:'||v_ename||' 薪水: '||v_sal); exception when no_data_found then dbms_output.put_line('您输入的编号有误!'); end;
二、PL/SQL词汇单元
PL/SQL词汇单元是它的最小的组件:分隔符、标识符、字面量、注释。
1、分隔符
分隔符是一个字符或字符的组合,在PL/SQL中有特殊的意义。不要在分隔符中嵌入其它的字符。
简单分隔符只有一个字符。
- +, -, *, / :加法,减法/否定,乘法,除法
- %:属性索引
- ‘:字符串分隔符
- .:组件选择
- (,):表达式或列表分隔符
- ::主机变量指示符
- ,:项目分离符
- “:带引号的标识符分隔符
- =:关系运算符
- @:远程访问指示符
- ;:声明终止符
复合分割符由两个字符组成。
- :=:赋值运算符
- =>:操作符关联
- **:乘方运算符
- <<, >>:标签分隔符(开始和结束)
- /, /:多行注释分隔符(开始和结束)
- –:单行注释指示符
- ..:范围操作
- <, >, <=, >=:关系运算符
- <>, ‘=, ~=, ^=:不同版本的不相等的
2、标识符
- 标识符命名pl/sql元素,包括:常量、光标、异常、关键字、标签、包、保留字、子程序、类型、变量。
- 标识符是由一个字母后面可以跟更多的字母,数字,美元符号,下划线和数字符号,并且不得超过30个字符。而像连字符(-)、斜线(/)等符号都是不允许使用的。
- 除了字符串和字符以外,PL/SQL对大小写是不敏感的。
- 不能使用保留关键字作为标识符。
3、文本
整数:030, 6, -14, 0, +327672E5, 5 * 10**3
字符:'Z' , '%' , '7' , ' ' , 'Hello, world!'
布尔: TRUE、FALSE和 null
日期: DATE '1998-12-25' ; TIMESTAMP '1997-10-22 13:01:01' ;
4、注释
单选注释
Select * from emp where empno=7788;--取得员工信息
多行注释
/*……*/来划分
三、PL/SQL代码编写规则
- 当定义变量时,建议用v_作为前缀;常量用c_作为前缀 ;游标用_cur作为后缀;当定义例外用e_作为前缀。
- PL/sql块中的语句不区分大小写
- PL/SQL中可以使用大多数的单行SQL函数:round,upper,to_char,month_between .
到此这篇关于Oracle中PL/SQL块与表达式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Oracle中PL/SQL中if语句的写法介绍
复制代码 代码如下: /*If语句:判断用户输入的数字.*/set serveroutput on --接收键盘输入accept num prompt '请输入一个数字:'; declare --将屏幕输入的数字付给变量 pnum number := #begin if pnum = 0 then dbms_output.put_line('您输入的是0'); end if; if pnum = 1 then dbms_output.put_line('您输入的是1'); e
-
详解Oracle块修改跟踪功能
块修改跟踪功能是指使用二进制文件记录数据库中数据库更改的过程. 其目的是提高增量备份操作的性能,因为RMAN可以使用快修改跟踪文件找到上次执行备份操作后被修改的数据块.这可以节省大量时间,因为如果不这样做RMAN就必须扫描所有数据块,确定执行上次备份操作后哪些数据块被修改了. 下面是启用快修改跟踪功能的步骤: 如果该功能还没有启用,可将DB_CREATE_FILE_DEST参数设置为磁盘上的某个目录,例如: alter system set db_create_file_dest='/u01/b
-
Oracle教程之pl/sql简介
本文实例讲述了Oracle的pl/sql.分享给大家供大家参考,具体如下: 一.pl/sql 是什么 pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展. pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大. 二.为什么要学pl/sql 1.提高应用程序的运行性能 2.模块化的设计思想(分页的过程,订单的过程,转账的过程..) 3.减少网络传输量 4.提高
-
Oracle数据块实现原理深入解读
下午在学习oracle 10g r2 concepts 在这留一笔. Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte).每种操作系统都有一个被称为块容量(block size)的参数.Oracle每次获取数据时,总是访问整数个(Oracle)数据块,而不是按照操作系统块的容量访问数据. 数据库中标准的数据块(data bloc
-
Oracle工具PL/SQL的基本语法
在本章中,我们将学习PL/SQL的基本语法,PL/SQL是块结构语言; PL/SQL程序划分成几个部分,并在每个部分中写入逻辑代码块.每个块由三个子部分组成 - 声明部分 - 此部分是以关键字DECLARE开头.这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素. 可执行命令部分 - 此部分包含在关键字BEGIN和END之间,这是一个强制性部分.它由程序的可执行PL/SQL语句组成.它应该有至少一个可执行代码行,它可以只是一个NULL命令,表示不执行任何操作. 异常处理部分
-
Oracle中PL/SQL复合数据类型
一.PL/SQL记录:一条记录 可简化单行多列的数据的处理.当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量. 1.当使用自定义的pl/sql记录时,需要分别定义pl/sql记录类型和记录变量. declare type emp_record_type is record( name emp.ename%type,salary emp.sal%type ); emp_record emp_record_type; begin s
-
Oracle如何使用PL/SQL调试存储过程
调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担. 工具/原料 PL\SQL Oracle 方法/步骤 首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过. 找到想要调试的存过,左键单击选中该存过(
-
ORACLE PL/SQL 触发器编程篇介绍
1.基本概念 两种功能:完成由数据库的完整性约束难以完成的复杂业务规则的约束:监视数据库的各种操作,实现审计功能. 触发器分为:DML触发器(对表或视图执行DML操作时触发),INSTEAD OF触发器(只定义在视图上,替代实际的操作语句),系统触发器(对数据库系统进行操作时触发,如DDL语句.启动或关闭数据库等) 触发事件: 上述触发器中括号内容都是触发事件. 触发条件: WHEN子句 触发对象:包括表.视图.模式.数据库. 触发操作:触发器自动执行的程序. 触发时机:触发器相对操作执行的时间
-
Oracle中PL/SQL的块与表达式
一.块(Block) 是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成. Declare /*定义部分――定义常量.变量.游标.例外.复杂数据类型*/ Begin /*执行部分――要执行的pl/sql语句和sql语句*/ Exception /*例外处理部分――处理运行的各种错误*/ end; 例: declare v_ename varchar2(5); v_sal number(7,2); begin select ename,sal into v_ename,v
-
Oracle中PL/SQL的用法总结
目录 一.PLSQL基本结构 1.基本数据类型变量 1. 基本数据类型 2. 基本数据类型变量的定义方法 2.表达式 1. 数值表达式 2. 字符表达式 3. 关系表达式 4. 逻辑表达式 3.PLSQL函数 4.系统输出打印 5.PL/SQL中的变量声明 二.变量赋值方式 三.PLSQL复合类型 1.记录类型record 2.表类型变量table 1. 定义一维表类型变量 2. 定义多维表类型变量 四. %type和%rowtype 五.PLSQL变量的可见空间 六.PLSQL流程控制 if判
-
Oracle在PL/SQL中使用存储过程
目录 一.概述 二.存储过程详解 1.创建过程语法: 2.创建存储过程 3.调用存储过程 4.C# 调用: 三.存储过程返回记录集SYS_REFCURSOR 1.返回单行语法 2.返回多行语法 四.维护存储过程 1.删除过程 2.显示过程代码 3.查看过程状态 4.重新编译过程 五. 过程与函数比较 1.相同点: 2.不同点: 六. 与过程相关数据字典 一.概述 过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储于数据库中. 并通过输入.输出和输入输出参数与其调用者交换信息
-
Oracle对PL/SQL中的异常处理
目录 一.异常处理 1.三种的异常类型: 2.异常的SQLCode 和 SQLERRM 二.处理预定义例外 常见错误预定义的名称 三.处理非预定义例外(exception_init) 四.处理自定义例外(通过Raise ) 五.应用程序的异常处理.(通过Raise_Application_Error ) 一.异常处理 PL/SQL提供了良好的异常处理机制,当程序运行出现错误时就会触发异常.异常被触发时,程序执行即终止,在PL/SQL块中提供了异常处理的部分,从而可以捕获一个异常进行特殊处理. 1
-
Oracle在PL/SQL中嵌入SQL语句
PL/SQL块中只能直接嵌入SELECT.DML(INSERT,UPDATE,DELETE)以及事务控制语句(COMMIT,ROLLBACK,SAVEPOINT), 而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句(GRANT,REVOKE) 1.嵌入SELECT语句 使用SELECT INTO语句时,必须要返回一条数据,并且只能返回一条数据. v_ename emp.ename%type; v_sal emp.sal%type; select ename,sal in
-
Oracle在PL/SQL中使用子查询
目录 一.概述 1.单行子查询(子查询只返回一行) 2.多行单列子查询(子查询返回多行) 3.多列子查询 二.在DDL语句中使用子查询 1.create table 2.create View 3.create materialized view 建立实体化视图 三.在DML语句中使用子查询 1.INSERT 2.UPDATE 3.DELETE 四.WITH语句 五.相关子查询. 一.概述 在一个SQL语句中嵌套另一个SQL语句成为子查询.包括单行子查询,多行子查询,多列子查询. 注意,当在DD
-
Oracle使用PL/SQL操作COM对象
正在看的ORACLE教程是:Oracle使用PL/SQL操作COM对象.PL/SQL是由Oracle公司对标准SQL进行扩展,专用于Oracle数据库中程序设计的专用语言,属第三代过程式程序设计语言.从Oracle8开始提供了直接从PL/SQL中调用外部C语言过程,允许开发人员用PL/SQL进行使用C语言编制的程序模块.从Oracle8i开始,又引入了Java程序. 在本文中主要介绍外部例程的基本原理以及使用条件,介绍如何通过引用外部例程来操作Windows中的COM对象,并做了一个操作Exce
-
oracle中动态SQL使用详细介绍
1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理.通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式.
随机推荐
- 用注册表实现(仅供备用)硬盘各分区的默认共享:关闭
- Windows下MongoDb简单配置教程
- 基于jquery实现的鼠标滑过按钮改变背景图片
- 关于Vue.nextTick()的正确使用方法浅析
- JS实现图片延迟加载并淡入淡出效果的简单方法
- python paramiko模块学习分享
- 部署PHP时的4个配置修改说明
- 如何拒绝同一张表单被多次提交?
- java多线程编程之Synchronized关键字详解
- js兼容IE6,IE7菜单高亮显示效果代码
- Linux 中 CURL常用命令详解
- jQuery EasyUI API 中文文档 - ProgressBar 进度条
- Java中Timer的用法详解
- 强悍的PHP脚本注入技巧(图)
- Android中使用AsyncTask实现下载文件动态更新进度条功能
- Android使用AlertDialog实现的信息列表单选、多选对话框功能
- 什么是Spring Boot
- IOS购物车界面实现效果示例
- php代码出现错误分析详解第1/2页
- C语言实现对bmp格式图片打码