
PLSQL
Fan_-_
菜的不行
展开
-
BULK COLLECT全解析
BULK COLLECTBULK COLLECT子句会批量检索结果,并从SQL引擎发送到PL/SQL引擎。(FORALL是从PL/SQL引擎发送到SQL引擎)declarecursor cur_student is select student_id,first_name,last_name from student;beginfor i in cur_student l...原创 2016-03-08 23:25:04 · 1721 阅读 · 2 评论 -
procedure
创建过程CREATE OR REPLACE PROCEDURE name [(parameter[, parameter, ...])]AS [local declarations]BEGIN executable statements[EXCEPTION exception handlers]END [name];C原创 2016-08-07 00:46:28 · 445 阅读 · 0 评论 -
函数Function
函数Function创建和使用函数1.函数基础函数是另一种存储代码,非常类似于存储过程。两者之间的重要区别是,函数是能够返回单个值的PL/SQL语句块。函数可以接收一个或者多个参数,也可以不接收参数,但是函数的可执行部分必须有一个返回子句。必须在函数的头部声明返回值的数据类型。与过程一样,函数不是独立执行的,他必须在某些上下文中才能使用。可以把函数看做是一个语句原创 2016-08-07 00:45:06 · 535 阅读 · 0 评论 -
record
记录record基于表的记录 emp%rowtype;基于游标的记录 cursor c_emp is select empno,ename from emp; rec_emp c_emp%rowtype;用户定义的recordTYPE type_name IS RECORD (field_name1 datatype1 [NOT NULL] [ := DEFAULT EXPRESSION],原创 2016-08-07 00:43:53 · 655 阅读 · 0 评论 -
本地动态sql
DECLARE sql_stmt VARCHAR2(100); plsql_block VARCHAR2(300); v_zip VARCHAR2(5) := '11106'; v_total_students NUMBER; v_new_zip VARCHAR2(5); v_student_id NUMBER := 151;BEGIN -- Create table原创 2016-08-07 00:42:48 · 853 阅读 · 0 评论 -
Ref Cursor / sys_refcursor
REF CURSOROPEN-FOR、FETCH和CLOSE语句被用于处理多行查询或者游标。这个概念非常类似于静态的游标处理。对于静态游标,首先把游标变量与查询建立关联。接下来,打开游标变量,以便于指向结果集的第一行数据。然后,从结果集中每次检索一行数据。最后,当处理完所有数据行是,关闭游标对于动态SQL,OPEN-FOR语句有个可选的USING子句,使用它可以在运行时原创 2016-08-07 00:39:47 · 972 阅读 · 0 评论 -
批量游标常用套路
declare cursor cur_login is select user_id, login, login_time from user_login; type user_id_type is table of user_login.user_id%type; type login_type is table of user_login.login%type; type log原创 2016-08-07 00:38:53 · 2521 阅读 · 0 评论 -
ref cursor sys_refcursor传递结果集
SQL> set linesize 200 pages 100SQL> variable v refcursor;SQL> exec open :v for 'select * from emp';PL/SQL procedure successfully completed.SQL> print :v; EMPNO ENAME JOB MGR HIRE原创 2016-08-07 00:38:04 · 2477 阅读 · 0 评论 -
FORALL全解析
FORALL语句会从PL/SQL引擎会向SQL引擎发送SQL语句,后者会向PL/SQL引擎返回结果。PL/SQL和SQL引擎之间的通信称为上下文切换。这种上下文切换存在一定的性能负载。1、FORALL语句 FORALL语句会从PL/SQL引擎向SQL引擎批量发送INSERT、UPDATE和DELETE语句,而不是每次发送一条语句。例如,考虑下面的数值型FOR循环会10次迭代执原创 2016-03-08 22:58:05 · 2873 阅读 · 1 评论 -
异常处理总结
Exception例1:zero_divide ----除数为0declare v_a number := &A; v_b number := &B; v_result number;begin v_result := v_a / v_b; dbms_output.put_line(v_result);exception when zer原创 2016-03-08 22:59:41 · 596 阅读 · 0 评论 -
PLS_INTEGER、BINARY_INTEGER和SIMPLE_INTEGER区别
PLS_INTEGERPLS_INTEGER数据类型保存范围-2147483648到2147483647的有符整数。这种类型的值是通过底层硬件平台的原生整数格式来表示的。设计PLS_INTEGER数据类型是为了运算速度。在oracle数据库10g以前,PLS_INTEGER是唯一的一个使用原生机器算法的整数类型。其他的所有数值烈性的数据类型都和NUMBER数原创 2016-08-07 00:49:12 · 3472 阅读 · 0 评论