Oracle11g: PL/SQL基础
2008-09-09 12:54:46 来源:WEB开发网PL/SQL是一种反应迟钝的程序语言,像SQL一样。虽然这种语言很迟钝,但是有很多惯例对于人们如何编写密码很适用。大多数人选择大写字母、小写字母、题目或者是大小写混合。在这些方法中没有一种标准可以遵循。
Oracle PL/SQL块结构
PL/SQL是由构造程序、统计数据、模块性以及异常管理等建模观念发展而来的。它扩展了ADA程序语言。ADA扩展了Pascal程序语言,包括配置、比较运算符以及单引字符串分隔符。
PL/SQL支持两种程序:一种是匿名块程序,另一种是指定块程序。两种程序都有说明、实施和异常处理部分或者块。匿名块支持batch脚本,指定块传送存储程序单元。
匿名块PL/SQL程序基本原型为:
[DECLARE]
declaration_statements
BEGIN
execution_statements
[EXCEPTION]
exception_handling_statements
END;
/
如同原型中的显示的一样,PL/SQL要求只能是匿名块程序实施部分。实施部分以BEGIN语句开始、以EXCEPTION块开始或者是该程序的END语句停顿。匿名PL/SQ块以一个分号结束。然后迅速执行这一块。
说明部分包括可变定义和说明、自定义PL/SQL定义、光标定义、嵌套匿名PL/SQL块或者叫本地或存储指定PL/SQL块。异常部分包括错误处理短语、这些语句能利用所有和实施部分一样的条款。最简单的PL/SQL块不执行任何命令。你一定要在任意实施块里至少有一个语句,甚至是一个NULL语句。Forward slash实施一个匿名的PL/SQL块。下面列举了大多数基本的匿名块程序:
:
BEGIN
NULL;
END;
/
你必须让SQL*Plus SERVEROUTPUT变量将内容打印到控制台。hello_world.sql将信息打印到控制台:
SETSERVEROUTPUTONSIZE1000000
BEGIN
dbms_output.put_line(’HelloWorld.’);
END;
/
SQL*Plus SERVEROUTPUT环境变量打开了一个输出缓冲器,DBMS_ OUTPUT.PUT_LINE()函数打印了一行输出量。所有的说明、语句和块都是以分号结束。
SQL*Plus支持在交互的控制台使用替换变量,它是以&.开始的。替换变量由长度可变的字符串或者在数字组成。你应该在说明块里给动态值赋值,如替换变量。以下程序详细说明了变量以及给它赋值:
DECLARE
my_varVARchar2(30);
BEGIN
my_var:=’&input’;
dbms_output.put_line(’Hello’||my_var);
END;
/
PL/SQL里的分配符是由冒号加等号(:=)组成。PL/SQL字符文字是由单引号划分。日期、数字和字符文字在第三章里已经提到。你运行Oracle SQL*Plus中匿名块。Oracle SQL*Plus 中@符号负载并且执行一个脚本文件。默认文件的扩展名为.sql。以下为替换.sql文件:
SQL>@substitution.sql
Entervalueforinput:HenryWadsworthLongfellow
old 3: my_varVARchar2(30):=’&input’;
new 3: my_varVARchar2(30):=’HenryWadsworthLongfellow’;
HelloHenryWadsworthLongfellow
PL/SQL过程顺利完成。
以原先的指令开始的行接受你的程序的替换字符和新的指令运行时间替换。给字符串赋值对于处理异常情况来说太大了。异常块管理出现的错误。普通异常情况处理者能处理任意发生的错误。你利用一个WHEN块捕捉每一个出现的异常情况(带有错误处理者)——其他。
下面的异常的.sql程序说明当字符串对于变量太长时异常块管理如何错误。
匿名块改变了从30个字符串到10个字符串的定义。诗人的名字对于目标参数太长。给该参数赋值时出现了异常。控制台输出显示处理了和出现的异常。
你还能拥有:(a)在匿名块执行部分里嵌套匿名块程序;(b)在说明部分里指定块程序,该程序包括嵌套程序的相同类型;并且(c)存储指定程序。
最远的规划块管理整个程序流,而嵌套规划块管理它们的次级规划流。每个匿名或者指定块规划单元够包含异常部分。当一个本地异常处理器不能处理异常,将异常情况置入包含块和直到进入SQL*Plus环境里。
无论是从本地投放还是PL/SQL块投放,对管理错误包都是一样的。在投入的第一列和传送的最后一列出现了错误,这同样也叫做包。你已经开发PL/SQL块程序的基本结构和错误管理。块结构是从事PL/SQL的基础知识。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接