Oracle 11g:PL/SQL基础(下)

 
   | |

导读:PL/SQL中的赋值操作符是冒号加等号(“:=”),按行注释字符串的符号是单引号“’”。Date、numeric、string等关键字将在第三章阐述。你可以在Oracle的SQL*PLUS中……

关键词:Oracle 11g PL/SQL PL/SQL基础 赋值操作符

正在加载数据... 【TechTarget中国原创】PL/SQL中的赋值操作符是冒号加等号(“:=”),按行注释字符串的符号是单引号“’”。Date, numeric, string等关键字将在第三章阐述。你可以在Oracle的SQL*PLUS中调用执行匿名程序块。

【TechTarget中国原创】PL/SQL中的赋值操作符是冒号加等号(“:=”),按行注释字符串的符号是单引号“’”。Date、numeric、string等关键字将在第三章阐述。你可以在Oracle的SQL*PLUS中调用执行匿名程序块。在SQL*PLUS中,“@”符号表示加载并执行一个脚本文件中的所有代码。默认文件扩展名是“.sql”,当然你也可以用别的扩展名(你可以调用不带“.sql”扩展名的文件名)。下面是调用“substitution.sql”文件的示例:

SQL> @substitution.sql
Enter value for input: Henry Wadsworth Longfellow
old    3:     my_var VARCHAR2(30) := '&input';
new    3:     my_var VARCHAR2(30) := 'Henry Wadsworth Longfellow';
Hello Henry Wadsworth Longfellow
PL/SQL procedure successfully completed. 

  在以“old”开头的那一行,程序接收了一个替代变量,“new”开头那一行显示的是运行时的替代变量。赋给变量超过定义长度的字符串会引发异常。异常块会管理出现的错误。通用的异常类型可以截获任何出现的错误。你可以在“WHEN”代码块,使用通用错误处理类型“OTHERS”捕获所有异常。

  下面的“exception.sql”代码展示了异常代码块怎样管理赋值字符串长度超过了变量定义长度引发的异常。

  -- 代码来源:exception.sql。可以从出版社网站下载。


DECLARE
  my_var VARCHAR2(10);
BEGIN
  my_var := '&input';
  dbms_output.put_line('Hello '|| my_var );
EXCEPTION
  WHEN others THEN
    dbms_output.put_line(SQLERRM);
END;
/

  我们把匿名代码块字符串变量my_var的长度定义从30改成了10。现在诗人Henry Wadsworth Longfellow的姓名长度超过了变量定义的长度,给变量赋值时将会引发异常。下面的控制台输出显示了被引发并捕获的异常信息:


SQL> @exception.sql
Enter value for input: Henry Wadsworth Longfellow
old   4:    my_var  :=  '&input';
new   4:    my_var  :=  'Henry Wadsworth Longfellow';
ORA-06502:  PL/SQL: numeric or value error: character string buffer too small
PL/SQL procedure successfully completed.

  存储过程还支持:(1)在匿名代码块的执行段内嵌套匿名程序;(2)声明段的命名代码块可以依次包含相同类型的嵌套程序;(3)调用命名的存储过程程序。

  最外层的程序块控制整个程序的执行顺序,嵌套的程序块只控制它们内部的程序流程。不管是匿名程序块还是命名程序块,每一段程序内可以包含一个异常处理段。异常出现时,如果本段异常处理失败,异常就被抛出到本段外层的异常处理块,直到回到SQL*PLUS环境中。
 
  不管错误是由调用本地代码抛出,还是由调用命名存储过程块抛出,错误堆栈的管理一样的。错误被抛出后,会被加入到先进后出的队列(即堆栈)。

  我们已经探讨了PL/SQL程序块的基本结构和错误堆栈管理,程序块结构是PL/SQL编程的基础知识。

  下载《Oracle DataBase 11g PL/SQL编程》(PDF版),阅读本章的更多内容。

  关于Oracle 11g中PL/SQL的更多内容

  在我们的“专家问答”栏目提出关于Oracle 11g PL/SQL编程的问题,可以得到专家们的解答。

  在你第一次使用Oracle 11g之前,PL/SQL专家Steve Feurstein在这段博客视频中给我们讲解了他希望在最新版本数据库中PL/SQL编程的改进特性。那么Oracle实现这些改进了吗?

  您可以在我们的Oracle 11g特别报道里看到所有关于oracle 11g PL/SQL编程的信息。

  您还希望在SearchOracle.com.cn看到哪些其他关于Oracle 11g PL/SQL的资料和文章?请发邮件告诉我们。

 
查看全文
 
 
 
 
 

Oracle PL/SQL

 
对于一个有相关IT经验的人来说,从头学起PL/SQL该选什么样的书?一本好书对于学习一门新技术究竟有多大的影响?专家Dan Clamage给出了解答。
 
开发人员会发现Toad有两点功能很有价值:自动化设计器和ER图工具。自动化设计器提供了一种RAD方法来创建Oracle数据库批文件的等价物。
 
Quest公司的Toad 10有四款针对Oracle产品的不同套件,它们可以帮助Oracle DBA和开发人员们更好地管理数据库和应用。
 
如何使用PL/SQL列出有特殊符号的行,PL/SQL专家将给出相应的建议,并教您如何使用translate、char和trunk函数。
 
触发器的类型有三种:DML——按照表中的DML语句触发;Instead-of——按照视图而不是DML语句触发;System——当系统事件发生时触发,比如关闭或启动系统。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录