PL/SQL
练习?/p>
?/p>
Oracle
中所有的过程都是?/p>
PL/SQL
块开始的,掌?/p>
PL/SQL
对于过程的开发是非常用用处的?/p>
PL/SQL
块的定义格式?/p>
DECLARE
声明一些变?/p>
BEGIN
程序的开?/p>
EXCEPTION
程序中有可能出现异常
END ;
/
范例?/p>
使用以上的语句,创建一个简单的程序?/p>
DECLARE
i
NUMBER
;
BEGIN
i:=30 ;
--
将变?/p>
i
的内容设置成
30
DBMS_OUTPUT.PUT_LINE('i
的内容是?/p>
' || i) ;
END ;
/
以上一个基本的语句块已经写完了,但是里面并没有任何的输出,之所以这样,主要原因在于
SQLPLUSW
中的系统输出没有打开,需要通过以下
的命令完成:
SET SERVEROUTPUT ON ;
以上是一个简单的语句块,但是?/p>
PLSQL
块中也可以直接进行数据库的查询操作?/p>
范例?/p>
要求输入一个雇员的编号,之后显示出此编号雇员的姓名
·
如果要想输入雇员编号的话,第八章存在一个替代变量?/p>
&
?/p>
DECLARE
eno
NUMBER ;
--
接收传入的编?/p>
name VARCHAR2(8) ;
--
保存查询出来的雇员姓?/p>
BEGIN
DBMS_OUTPUT.PUT_LINE('
请输入雇员编号:
') ;
eno:=&empnonumber ;
SELECT ename INTO name FROM emp WHERE empno=eno ;
DBMS_OUTPUT.PUT_LINE('
编号?/p>
' || eno ||'
的雇员姓名是?/p>
' || name) ;
END ;
/
此时已经可以查询出来了,但是以上的代码是否会存在其他问题呢?如果现在输入的编号不存在则有可能返回错误信息,那么为了让代码在出现错
误之后依然可以正确的使用,则可以加入异常处理的操作机制?/p>
DECLARE
eno
NUMBER ;
--
接收传入的编?/p>
name VARCHAR2(8) ;
--
保存查询出来的雇员姓?/p>
BEGIN
DBMS_OUTPUT.PUT_LINE('
请输入雇员编号:
') ;