Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 11g Release 1 (11.1) PL/SQL_了解静态和动态 SQL

本文内容

  • 静态 SQL
  • 动态 SQL  

静态 SQL

静态 SQL 是属于 PL/SQL 语言的 SQL。也就是:
  • 除了解释执行计划的,数据操作语句(Data Manipulation Language,DML)
  • 事务控制(Transaction Control Language,TCL)语句
  • SQL 函数
  • SQL 伪列
  • SQL 运算符
静态 SQL 符合目前 ANSI/ISO SQL 标准。示例 1:演示用 PL/SQL 操作数据若操作数据库的数据,则无需任何特别的符号,你可以直接在 PL/SQL 程序里包含 DML 操作,如 INSERTUPDATEDELETE 语句。你也可以直接在 PL/SQL 程序里包含 COMMIT 语句。CREATE TABLE employees_temp<!--CRLF-->AS SELECT employee_id, first_name, last_name <!--CRLF-->FROM employees;<!--CRLF-->DECLARE<!--CRLF-->emp_idemployees_temp.employee_id%TYPE;<!--CRLF-->emp_first_nameemployees_temp.first_name%TYPE;<!--CRLF-->emp_last_name employees_temp.last_name%TYPE;<!--CRLF-->BEGIN<!--CRLF--> INSERT INTO employees_temp VALUES(299, "Bob", "Henry");<!--CRLF--> UPDATE employees_temp<!--CRLF--> SET first_name = "Robert" WHERE employee_id = 299;<!--CRLF--> DELETE FROM employees_temp WHERE employee_id = 299 <!--CRLF--> RETURNING first_name, last_name<!--CRLF--> INTO emp_first_name, emp_last_name;<!--CRLF--> COMMIT;<!--CRLF--> DBMS_OUTPUT.PUT_LINE( emp_first_name|| " " || emp_last_name);<!--CRLF-->END;<!--CRLF-->/<!--CRLF-->示例 2:演示在 PL/SQL 调用 SQL 函数——COUNT 函数DECLARE<!--CRLF-->job_count NUMBER;<!--CRLF-->emp_count NUMBER;<!--CRLF-->BEGIN<!--CRLF-->SELECT COUNT(DISTINCT job_id)<!--CRLF-->INTO job_count<!--CRLF-->FROM employees;<!--CRLF--> <!--CRLF-->SELECT COUNT(*)<!--CRLF-->INTO emp_count<!--CRLF-->FROM employees;<!--CRLF-->END;<!--CRLF-->/<!--CRLF-->示例 3:演示使用伪列——ROWNUMCREATE TABLE employees_temp AS SELECT * FROM employees;<!--CRLF-->DECLARE<!--CRLF--> CURSOR c1 IS SELECT employee_id, salary FROM employees_temp<!--CRLF-->WHERE salary > 2000 AND ROWNUM <= 10;-- 10 arbitrary rows<!--CRLF--> CURSOR c2 IS SELECT * FROM<!--CRLF--> (SELECT employee_id, salary FROM employees_temp<!--CRLF--> WHERE salary > 2000 ORDER BY salary DESC)<!--CRLF--> WHERE ROWNUM < 5;-- first 5 rows, in sorted order<!--CRLF-->BEGIN<!--CRLF-->-- Each row gets assigned a different number<!--CRLF-->UPDATE employees_temp SET employee_id = ROWNUM;<!--CRLF-->END;<!--CRLF-->/<!--CRLF-->
  • 1
  • 2
  • 下一页
Oracle 11g Release 1 (11.1) PL/SQL_理解 Record 类型Oracle 11g Release 1 (11.1) PL/SQL_多维 Collection 类型和其异常相关资讯      Oracle存储过程 
  • Oracle存储过程拼接in语句 & 自定  (今 09:21)
  • 【PL/SQL系列】Oracle存储过程使用  (04月23日)
  • Oracle存储过程及Java调用  (05/28/2015 20:29:33)
  • Java调用Oracle存储过程返回多条结  (04月29日)
  • Oracle中的存储过程简单应用  (04月10日)
  • 判断点是否落在面中的Oracle存储过  (05/09/2015 09:39:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明