PLSQL Language Referenc-PL/SQL静态SQL-静态SQL的描述-语句

PL/SQL静态SQL

静态SQLPL/SQL的一个功能,它允许SQL语法直接出现在PL/SQL语句中。

静态SQL的描述

语句

PL/SQL静态SQL,可以在对应的SQL语句使用绑定变量的地方使用PL/SQL标识符,该标识符用于表示一个变量或一个参数。

-- PL/SQL静态SQL

DROP TABLE employees_temp;

CREATE TABLE employees_temp AS

    SELECT employee_id, first_name, last_name

    FROM employees;

 

DECLARE

    emp_id          employees_temp.employee_id%TYPE := 299;

    emp_first_name  employees_temp.first_name%TYPE  := 'Bob';

    emp_last_name   employees_temp.last_name%TYPE   := 'Henry';

BEGIN

    --静态SQL语句,INSERT, UPDATE, DELETECOMMIT

    INSERT INTO employees_temp (employee_id, first_name, last_name)

    VALUES (emp_id, emp_first_name, emp_last_name);

 

    UPDATE employees_temp

    SET first_name = 'Robert'

    WHERE employee_id = emp_id;

 

    DELETE FROM employees_temp

    WHERE employee_id = emp_id

    RETURNING first_name, last_name

    INTO emp_first_name, emp_last_name;

 

    COMMIT;

    DBMS_OUTPUT.PUT_LINE (emp_first_name || ' ' || emp_last_name);

END;

注意:在PL/SQL代码运行了DML语句之后,一些变量的值是未定义的。

FETCHSELECT语句引发异常之后,那这些语句之后定义的变量的值是未定义的。

DML操作影响了0行之后out绑定变量的值是未定义的,除非DML语句是BULK或多行操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1118612/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17013648/viewspace-1118612/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值