首页 > 代码库 > 3.PL_SQL——创建第一个匿名块(set,l,DBMS_OUTPUT.PUT_LINE())
3.PL_SQL——创建第一个匿名块(set,l,DBMS_OUTPUT.PUT_LINE())
一、编写匿名块并执行
前文中介绍了PL/SQL的几种块的类型,其中匿名块是一种即时创建即时执行的块,下面使用sql*plus来演示一下如何创建一个匿名块:
SQL> show user
-- 显示当前用户 USER is "HR"
SQL>
1 DECLARE 2 v_fname VARCHAR2(20); --DECLARE 部分,后文中将详解命名规则 3 BEGIN 4 SELECT first_name 5 INTO v_fname 6 FROM employees 7 WHERE employee_id=100; 8 END; 9 / -- 在sql*plus中要结束PL/SQL的编写,使用斜杠/即可 PL/SQL procedure successfully completed. -- 提示执行成功
二、将执行结果显示到屏幕上
虽然提示执行成功了,但是我们无法看到执行的结果,因此可以使用set命令来设置输出效果。
首先使用help set命令查看set的使用方法:
SQL> help set
SET --- Sets a system variable to alter the SQL*Plusenvironment settings for your currentsession. For example, to: - set the display width for data - customize HTML formatting - enable or disable printing of columnheadings - set the number of lines per page SET system_variablevalue where system_variableand value represent one of the following clauses: BLO[CKTERMINATOR]{.|c|ON|OFF} RECSEPCHAR {_|c} CMDS[EP]{;|c|OFF|ON} SERVEROUT[PUT] {ON|OFF} -- 设置server端是否显示结果 COLSEP{_|text} [SIZE{n | UNLIMITED}] -- 显示的缓冲区的大小 CON[CAT]{.|c|ON|OFF} [FOR[MAT] {WRA[PPED] |
SQL> set serveroutput on
-- 打开屏幕输出
SQL> l
-- 使用L命令,从sql的命令历史中提取上一次执行的语句 1 DECLARE 2 v_fname VARCHAR2(20); 3 BEGIN 4 SELECT first_name 5 INTO v_fname 6 FROM employees 7 WHERE employee_id=100; 8* END;
SQL> /
PL/SQL procedure successfully completed. -- 还是没有看到输出结果,这是由于在之前的匿名块中并没有定义输出结果,所以需要重写这个匿--- 名块。
三、调用DBMS_OUTPUT.PUT_LINE()显示输出结果
SQL>
1 DECLARE 2 v_fname VARCHAR2(20); 3 BEGIN 4 SELECT first_name 5 INTO v_fname 6 FROM employees 7 WHERE employee_id = 100; 8 DBMS_OUTPUT.PUT_LINE(‘The result is ‘ ||v_fname); -- 使用包DBMS_OUTPUT中的方法PUT_LINE输出结果(类似于C语言中的printf()) -- 但是使用DBMS_OUTPUT.PUT_LINE()前,必须确保serveroutput设为on了 -- 其中|| 为连字符 9 END; 10 / The result is Steven -- 可以看到输出结果为Steven了。 PL/SQL procedure successfully completed.
以上就是一个匿名块的创建过程。
本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1538784
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。