分类: Oracle
2009-09-07 22:35:09
1.2 SQL*Plus 中的PL/SQL(1)
试验目标
在完成这个试验之后,你能够:
使用替代变量(substitution varible)。
使用DBMS_OUTPUT.PUT_LINE 语句。
SQL *Plus 是一个交互式工具,能够在命令行提示符环境下输入SQL 或者PL/SQL 语句。接着,这些语句会被发送到数据库。在数据库处理这些语句之后,处理结果会从数据库返回,并显示在屏幕上。但是,输入SQL 语句和PL/SQL 语句之间存在一些差别。
考虑SQL 语句的如下范例:
上述语句块的结尾两行代码分别是点号(.)和斜线(/)。点号(.)表示PL/SQL 语句块的结尾,并且是可选的。斜线(/)会执行这个PL/SQL 语句块,并且是必需的。
当SQL *Plus 读取一条SQL 语句时,它知道分号表示语句的结束。因此,分号之前的字符表示一条语句,并被发送到数据库。当SQL *Plus 读取一个PL/SQL 语句块时,分号表示语句块中单个语句的结束。换句话说,它不是语句块结束符。因此,SQL *Plus 需要知道何时语句块结束。正如所看到的那样,可以使用点号和斜线来表示。
1. 替代变量
前面已经提到,PL/SQL 并不是独立的编程语言,只是Oracle 编程环境的一个工具。因此,它不具备从用户接收输入的能力。但是,在SQL *Plus 中,借助于替代变量,PL/SQL 语句块可以接收输入信息。替代变量不能用于输出值,因为没有给它们分配任何存储空间。在PL/SQL 语句块发送到数据库之前,SQL *Plus 会使用实际值来替换这些替代变量。通常而言,替代变量的前缀是& 或者&& 。考虑下面的范例:
当执行这个范例时,会要求用户提供学生ID 。如果所提供的学生ID 在STUDENT 数据库表中存在,则检索相应的学生姓名。如果所提供的学生ID 在STUDENT 数据库表中不存在,则异常处理部分会在屏幕上显示一条错误消息。
前面的范例使用& 作为替代变量。当PL/SQL 语句块使用& 时,会要求用户为替代变量的每次出现提供值。考虑下面的范例: