Oracle入门(十四.3)之创建PL / SQL块

一、PL / SQL块结构

一个PL / SQL块由三部分组成。


PL / SQL块结构部分



二、PL / SQL编译器

    用高级编程语言(C,Java,PL / SQL等)编写的每个程序都必须经过检查并转换为二进制代码(1和0),然后才能执行。 执行此检查和翻译的软件称为编译器。


    PL / SQL编译器在需要时自动执行。 它不仅检查每个单词拼写是否正确,而且还检查是否存在任何引用的数据库对象(如表),并且用户具有访问它们的必要特权。


三、匿名块

(1)匿名块的特征
•未命名的块
•未存储在数据库中
•在其执行的应用程序中的内部声明为内联
•每次执行应用程序时编译
•传递给PL / SQL引擎以在运行时执行

•无法调用或调用,因为它没有名称,执行后不存在

[DECLARE]
BEGIN
 --statements
[EXCEPTION]
END;
(2)匿名块的例子

没有声明或异常部分,只执行

BEGIN
 DBMS_OUTPUT.PUT_LINE('PL/SQL is easy!');
END;

宣言和执行部分,但没有例外部分

DECLARE
 v_date DATE := SYSDATE;
BEGIN
 DBMS_OUTPUT.PUT_LINE(v_date);
END;

宣言和例外部分

DECLARE
    v_country_name VARCHAR2(40);
    v_region_id NUMBER;
BEGIN
    SELECT country_name, region_id
        INTO v_country_name, v_region_id
        FROM countries WHERE country_id='CA';
    DBMS_OUTPUT.PUT_LINE ('The country name is: '||v_country_name||' and is located in '||v_region_id||'.') ;
EXCEPTION
    WHEN TOO_MANY_ROWS THEN
    DBMS_OUTPUT.PUT_LINE ('Your select statement retrieved multiple rows. Consider using a cursor.');
END;


四、子程序

(1)子程序
•命名为PL / SQL块
•存储在数据库中

•可以根据您的应用程序随时调用

•可以声明为程序或功能
- 过程:执行操作
- 功能:计算并返回一个值

PROCEDURE name
IS
 --variable declaration(s)
BEGIN
 --statements
[EXCEPTION]
END;
FUNCTION name
RETURN datatype
 --variable declaration(s)
IS
BEGIN
 --statements
 RETURN value;
[EXCEPTION]
END;
(2)子程序的例子

打印当前日期的过程

CREATE PROCEDURE print_date IS
 v_date VARCHAR2(30);
BEGIN
 SELECT TO_CHAR(SYSDATE,'Mon DD, YYYY')
 INTO v_date
 FROM DUAL;
 DBMS_OUTPUT.PUT_LINE(v_date);
END;

函数返回字符串中的字符数

CREATE PROCEDURE print_date IS
 v_date VARCHAR2(30);
BEGIN
 SELECT TO_CHAR(SYSDATE,'Mon DD, YYYY')
 INTO v_date
 FROM DUAL;
 DBMS_OUTPUT.PUT_LINE(v_date);
END;
CREATE FUNCTION num_characters (p_string IN VARCHAR2)
 RETURN INTEGER IS
 v_num_characters INTEGER;
BEGIN
 SELECT LENGTH(p_string) INTO v_num_characters
 FROM DUAL;
 RETURN v_num_characters;
END;


五、程序构造

下表概述了使用基本PL / SQL块的各种不同的PL / SQL程序结构。 这些构造是基于它们被执行的环境而提供的。



六、PL / SQL编程环境

有许多工具为环境提供了一个环境开发PL / SQL。 Oracle提供了几种工具可以使用。 一些Oracle开发工具是:



七、Oracle Application Express

Oracle Application Express是一个基于浏览器的Web应用程序环境,它提供了SQL Workshop组件。



八、使用SQL Workshop进行开发

当您登录到Oracle Application Express并选择SQL Workshop时,可以选择使用SQL命令选项来使用SQL命令行编辑器,也可以选择SQL脚本选项在脚本编辑器中工作。



九、SQL命令

您可以使用SQL命令输入并运行单个SQL语句或单个PL / SQL块。 SQL脚本可以包含一个或多个SQL语句和/或PL / SQL块。 使用SQL脚本输入并运行多语句脚本。



使用DBMS_OUTPUT.PUT_LINE示例
看看这个简单的PL / SQL块和它的输出。 你如何显示结果?



使用DBMS_OUTPUT.PUT_LINE

让我们添加一个对DBMS_OUTPUT.PUT_LINE的调用。 现在你可以看到结果!



DBMS_OUTPUT.PUT_LINE允许您显示结果,以便您可以检查您的块是否正常工作。 它允许您一次显示一个字符串,但可以将它们连接起来。

DECLARE
 v_emp_count NUMBER;
BEGIN
 DBMS_OUTPUT.PUT_LINE('PL/SQL is easy so far!');
 SELECT COUNT(*) INTO v_emp_count FROM employees;
 DBMS_OUTPUT.PUT_LINE('There are '||v_emp_count||'
 rows in the employees table');
END;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值