随笔分类 -  Oracle PL/SQL

存储过程调用过程中,获取当前正在执行的过程的信息
摘要:调用 异常 阅读全文
posted @ 2013-05-19 08:30 Coldest Winter 阅读(642) 评论(0) 推荐(0)
Bulk SQL Operations
摘要:PL/SQL中的批量操作,允许一次操作和处理多行数据,而不是一次处理一行数据。批量操作包括批量的读取数据,批量的绑定处理处理数据:(bulk fetching and bulk binding) Bulk fetching refers to the ability to retrieve a set of rowsfrom the database into PL/SQL structures with a single call, rather than making a call to the database foreach row to be retrieved. Bu... 阅读全文
posted @ 2012-05-31 22:04 Coldest Winter 阅读(391) 评论(0) 推荐(0)
退出嵌套的FOR LOOP循环(直接退出所有的循环)
摘要:推出嵌套的FOR LOOP循环,有两种方法,第一种,使用GOTO语句跳出循环,跳到指定的位置,这时候,需要使用LABLE标记符; 1 DECLARE 2 V_COUNT NUMBER := 6; 3 BEGIN 4 FOR IDX1 IN 1 .. 5 LOOP 5 DBMS_OUTPUT.PUT_LINE('first---' || IDX1); 6 FOR IDX2 IN 1 .. 5 LOOP 7 DBMS_OUTPUT.PUT_LINE('secord---' || IDX2); 8 FOR IDX3 IN 1 .. 5 LOOP 9 ... 阅读全文
posted @ 2012-03-26 20:50 Coldest Winter 阅读(1034) 评论(0) 推荐(0)
Using PL/SQL Collections and Records
摘要:Collections and Records 阅读全文
posted @ 2012-03-20 06:17 Coldest Winter 阅读(402) 评论(0) 推荐(0)
Using PL/SQL Control Structures
摘要:以下为控制结构需要注意的:在条件判断比较多的情况下,推荐使用CASE语句代替IF/ELSE控制The value of a Boolean expression can be assigned directly to a Boolean variable. Youcan replace the first IF statement with a simple assignment:overdrawn := new_balance < minimum_balance;case语句:The ELSE clause isoptional. However, if you omit the EL 阅读全文
posted @ 2012-03-19 21:53 Coldest Winter 阅读(213) 评论(0) 推荐(0)
PL/SQL Datatypes
摘要:Overview of Predefined PL/SQL DatatypesA scalar type has no internal components. It holds a single value, such as a number orcharacter string.A composite type has internal components that can be manipulated individually, suchas the elements of an array.A reference type holds values, called pointers, 阅读全文
posted @ 2012-03-19 21:22 Coldest Winter 阅读(204) 评论(0) 推荐(0)
PL/SQL 命名规则
摘要:------------------------------------标识符 命名规则 实例程序变量 V_name V_name程序常量 C_Name C_company_name游标变量 Name_cursor Emp_cursor异常标识 E_name E_too_many表类型 Name_table_type Emp_record_type表 Name_table Emp记录类型 Name_record Emp_recordSQL*Plus 替代变量 P_name P_sal绑定变量 G_name G_year_sal---------------------------------- 阅读全文
posted @ 2012-03-18 20:54 Coldest Winter 阅读(337) 评论(0) 推荐(0)
Oracle调度之DBMS_JOB
摘要:Oracle调度是指定时的启动程序,执行相应的操作,Oracle10G中dbms_job包(位于SYS用户下),Oracle已经提供了DBMS_SCHEDULER用来替代它。逐步的摒弃dbms_job包。This package is deprecated and has been supplanted by DBMS_SCHEDULER.dbms_job包下使用的参数: -- JOB is the number of the job being executed. -- WHAT is the PL/SQL procedure to execute. -- The job must... 阅读全文
posted @ 2012-03-07 20:46 Coldest Winter 阅读(1240) 评论(0) 推荐(0)
测试REF_CCURSOR和SYS_CURSOR的区别、自治事务Autonomous Transaction的使用、BULK COLLECTION INTO 和 FORALL语句的使用
摘要:包头: 1 CREATE OR REPLACE PACKAGE TEST_REF_CURSOR IS 2 3 -- AUTHOR : ADMINISTRATOR 4 -- CREATED : 2011-12-28 10:57:32 5 -- PURPOSE : 测试REF_CCURSOR和SYS_CURSOR的区别:自治事务Autonomous Transaction的使用: 6 -- BULK COLLECTION INTO 和 FORALL语句的使用 7 8 /* 9 O_RETURNFLAG:用于判断该存储过程是否成功执行,并在出错后存储相... 阅读全文
posted @ 2012-01-12 22:03 Coldest Winter 阅读(831) 评论(0) 推荐(0)
PL/SQL中使用EXISTS:使用LOOP循环替代或者SELECT实现类似的功能:
摘要:EXISTS 指定一个子查询,用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。上述的功能在T-SQL中可以直接使用,但是在PL/SQL中,会出现如下的问题:1 BEGIN2 IF EXISTS(SELECT * FROM EMP) THEN3 DBMS_OUTPUT.PUT_LINE();4 ELS... 阅读全文
posted @ 2012-01-11 16:54 Coldest Winter 阅读(840) 评论(0) 推荐(0)
COLLECTION--VARRAY/NEST TABLE/INDEX BY TABLE
摘要:COLLECTION 阅读全文
posted @ 2012-01-01 18:58 Coldest Winter 阅读(294) 评论(0) 推荐(0)
PL/SQL--Procedure(过程)和Function(函数)的区别
摘要:过程和函数的区别:过程函数使用关键字procedure声明使用关键字function进行声明都可以使用IN/OUT/IN-OUT格式的参数在定义的时候,不需要进行return(返回值)需要指定使用return定返回值的类型都可以由声明、执行、异常处理三个部分组成可以作为独立的PL/SQL语句单独执行在PL/SQL中必须指定变量接收返回,必须在表达式中使用可以在内部包含RETURN子句,类似JAVA中的使用必须包含一个有效的RETURN子句在COMMAND命令窗口中,使用EXECUTE命令执行过程借用select语句来执行在DD... 阅读全文
posted @ 2011-12-21 23:13 Coldest Winter 阅读(3211) 评论(0) 推荐(0)
PL/SQL--Package
摘要:一个简单的例子:包头: 1 CREATE OR REPLACE PACKAGE TEST_PAC IS 2 3 -- AUTHOR : ADMINISTRATOR 4 -- CREATED : 2011-12-19 21:18:41 5 -- PURPOSE : 包含表的基本的增删改查操作 6 7 -- PUBLIC TYPE DECLARATIONS 8 TYPE EMP_RECORD IS RECORD( 9 EMPNO NUMBER(4),10 ENAME VARCHAR2(10),11 JOB VARCHAR2(9... 阅读全文
posted @ 2011-12-20 21:46 Coldest Winter 阅读(251) 评论(0) 推荐(0)
PL/SQL--Trigger
摘要:--最简单的一个触发器的使用:当修改了emp表中的ename字段的时候,假如新值和旧值不同的时候,打印出一条数据1 CREATE OR REPLACE TRIGGER EMP_TRI2 AFTER UPDATE OF ENAME ON EMP3 FOR EACH ROW4 WHEN (OLD.ENAME != NEW.ENAME)5 BEGIN6 DBMS_OUTPUT.PUT_LINE('ename:' || :OLD.ENAME || 'has change to' ||7 :NEW.ENAME);8 END EM... 阅读全文
posted @ 2011-12-20 20:52 Coldest Winter 阅读(322) 评论(0) 推荐(0)
PL/SQL--Collection
摘要:官方文档;http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/05_colls.htm#20425主要有三种常用的集合:VARRAY,NEST_TABLE(嵌套表),联合数组(index_by表,类似于MAP中的键-值对应),这里主要介绍varray,在最后给了一个联合数组的例子集合中常用到的方法:1、EXISTS(row) returns TRUE if the row specified exists.2、COUNT returns the number of rows.3、FIRST returns the row number o 阅读全文
posted @ 2011-12-19 23:38 Coldest Winter 阅读(811) 评论(1) 推荐(1)
PL/SQL--EXCEPTION
摘要:错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 编译器报告错误, 必须进行处理运行时错误 PL/SQL运行时引擎 程序化的处理, 异常由异常处理程序引发不进行捕获常用的两个参数分别是:SQLCODE:返回的是当前的错误代号SQLERRM:返回的是当前的错误信息文本如果是用户自定义异常:SQLCODE的值为:1SQLERRM的值为:User-Defined EXCEPTION 1 DECLARE 2 V_1 NUMBER(10) := 100; 3 V_2 NUMBER(10) := ... 阅读全文
posted @ 2011-12-15 23:26 Coldest Winter 阅读(692) 评论(0) 推荐(0)
PL/SQL--控制结构
摘要:IF语句1 BEGIN2 IF 1 = 2 THEN3 DBMS_OUTPUT.PUT_LINE('1=2');4 END IF;5 END;IF/ELSE语句1 BEGIN2 IF 1 = 2 THEN3 DBMS_OUTPUT.PUT_LINE('1=2');4 ELSE5 DBMS_OUTPUT.PUT_LINE('1<>2');6 END IF;7 END;IF/ELSEIF/ELSE语句1 BEGIN2 IF 1 > 2 THEN3 DBMS_OUTPUT.PUT_LINE('1 > 2');4 阅读全文
posted @ 2011-12-12 22:36 Coldest Winter 阅读(266) 评论(0) 推荐(0)
PL/SQL--Cursor
摘要:显式游标隐式游标游标变量游标子查询游标的概念:游标给出了数据的一个子集,这个子集是由某个查询语句定义的,在打开游标的时候,将数据加载到内存中,在游标未关闭的过程中,该数据将一直存在在内存中,游标指向PGA(PROCESS GLOBAL AREA)的一个内存区域,一般将PGA称为上下文区域。该区域存储下列数据: 1、查询语句返回的记录行。 2、查询语句处理的记录行数目。 3、指向共享池中(Share Pool)中已解析查询语句的一个指针。如果游标打开后,又新增或者删除了数据,则新增添和删除的数据就不会反馈到游标的查询结果中,打开游标就像是获取当前数据的一个快照:例如 1 DECLARE 2 .. 阅读全文
posted @ 2011-12-11 23:05 Coldest Winter 阅读(933) 评论(0) 推荐(0)
PL/SQL--RECORD
摘要:记录是指数据库数据库中的一行数据,是表中单行数据的一个镜像在PL/SQL中,有三种定义记录类型的方法:(1)、使用--表名%ROWTYPE;例如:DUAL%ROWTYPE;(2)、在PL/SQL中声明部分中显式的定义记录类型(3)、将记录类型定义为数据库结构或者对象类型(OBJECT)1、使用%ROWTYPE定义记录类型%ROWTYPE可以引用包括表、视图对象,%ROWTYPE属性继承了这些对象的行定义,创建测试表1 CREATE TABLE TEST_EMP AS SELECT * FROM EMP E WHERE E.DEPTNO IS NULL2 CREATE TABLE TEST_DE 阅读全文
posted @ 2011-12-11 22:11 Coldest Winter 阅读(896) 评论(0) 推荐(0)