随笔分类 -  ORACLE

摘要:oracle 存储过程的基本语法1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXC. 阅读全文
posted @ 2011-12-31 14:15 左正 阅读(282) 评论(0) 推荐(0) 编辑
摘要:关于 pipe row的用法2009/12/30 14:53=========================================================== 作者: flysky0814(http://flysky0814.itpub.net)发表于:2007.11.28 11:14分类: oracle10g 出处:http://flysky0814.itpub.net/post/35477/419443--------------------------------------------------------------- 为了让 PL/SQL 函数返回数据的多个行 阅读全文
posted @ 2011-12-14 16:05 左正 阅读(628) 评论(0) 推荐(0) 编辑
摘要:Oracle中scott用户下创建存储过程:(注:从9i开始有了sys_refcursor这种类型,在以前的Oracle版本中需要使用REF CURSOR,并且还需放在一个程序包中)create or replace procedure sp_getdept(result out sys_refcursor)asbeginopen result for select * from dept;end;/===================================================.net环境下(用的WINDOWS程序,WEB基本相同;环境为VS2005)==记着先添加引用 阅读全文
posted @ 2011-12-14 11:02 左正 阅读(2654) 评论(0) 推荐(0) 编辑
摘要:以下的文章是对Oracle VARRAY创建变长数组语句的描述,以及Oracle VARRAY(变长数组)的实际应用的介绍,望你在浏览之后会有会所收获。AD:Oracle VARRAY(变长数组)通俗的讲就是一个存储有序的元素集合,而其每个元素都有一个相关索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。创建变长数组语句:CreateTypevarray_phoneasvarray(3)ofvarchar2(50);接下来应用这个变长数组,先创建一个人员表,人员表中拥有一列电话,类型是变长数组,意思是这个人,可能有一个电话号码,也可能有2个,最多3个。crea 阅读全文
posted @ 2011-12-14 10:47 左正 阅读(852) 评论(0) 推荐(0) 编辑
摘要:以下内容为引用: 1、登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。 设置方法: Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。 Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedur 阅读全文
posted @ 2011-12-12 14:02 左正 阅读(525) 评论(0) 推荐(0) 编辑
摘要:Oracle的物化视图提供了强大的功能,可以用在不同的环境中。在不同的环境中,物化视图的 作用也不相同。 数据仓库中的物化视图主要用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结 果。在数据仓库中,还经常使用查询重写(query rewrite)机制,这样不需要修改原有的查询语句,Oracle会自动选择合适的物化视图进行查询,完全对应用透明。物化视图和表一样可以直接进行查询。物化视图可以基于分区表,物化视图本身也可以分区。除了在数据仓库中使用,物化视图还用于复制、移动计算等方面。物化视图有很多方面和索引很相似:使用物化视图 阅读全文
posted @ 2011-12-04 15:17 左正 阅读(353) 评论(0) 推荐(0) 编辑
摘要:Oracle错误代码:ORA-28002。受影响版本:Oracle11g以上版本。导致密码消失的原因:Oracle 11g中默认的DEFAULT概要文件中口令有效期PASSWORD_LIFE_TIME默认值为180天。当以客户端登陆Oracle提示ORA-28002,则基本可以确定登陆帐号已过有效期,使用具有DBA权限的帐号重置该帐号密码即可。解决方法:以下步骤以具有DBA权限用户操作1.查看口令失效用户的profile文件SQL>SELECT username,profile FROM dba_users;EM:服务器>用户,查看口令失效的用户对应的概要文件,这里假设为DEFAU 阅读全文
posted @ 2011-10-24 09:21 左正 阅读(777) 评论(0) 推荐(0) 编辑
摘要:一 概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从 存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。二 类型 Cursor类型包含三种: 隐式Cursor,显式Cursor和Ref Cursor(动态Cursor)。 1. 隐式Cursor: 1).对于Select …INTO…语句,一次只能从数据库中获取到一条数据,对于这种类型的DML Sql语句,就是隐式Cursor。例如:Select /Upda. 阅读全文
posted @ 2011-10-20 13:50 左正 阅读(464) 评论(0) 推荐(0) 编辑
摘要:本文使用ORACLE自带的人力资源(HR)实例数据,本文所用表结构如下: HR.EMPLOYEES员工表结构如下: HR.DEPARTMENTS表结构如下: HR.REGIONS表结构如下: SQL> DESC HR.REGIONS; Name Type Nullable Default Comments ----------- ------------ -------- ------- -------- REGION_ID NUMBER REGION_NAME VARCHAR2(25) Y ----------------------------------------... 阅读全文
posted @ 2011-07-08 11:16 左正 阅读(412) 评论(0) 推荐(0) 编辑
摘要:本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: SQL> DESC SCOTT.EMP; Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) 员工编号 ENAME VARCHAR2(10) Y 员工姓名 JOB VARCHAR2(9) Y 职位 MGR NUMBER(4) Y 上级编号 HIREDATE DATE Y 雇佣日期 SAL NUMBER(7,2) Y 薪金 COMM NUMBER(7,... 阅读全文
posted @ 2011-07-08 11:14 左正 阅读(258) 评论(0) 推荐(0) 编辑
摘要:本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) 员工号 ENAME VARCHAR2(10) Y 员工姓名 JOB VARCHAR2(9) Y 工作 MGR NUMBER(4) Y 上级编号 HIREDATE DATE Y 雇佣日期 SAL NUMBER(7,2) Y 薪金 COMM NUMBER(7,2) Y 佣金 DEPTNO NUMBER(2) Y 部门编号 sc. 阅读全文
posted @ 2011-07-08 11:08 左正 阅读(441) 评论(0) 推荐(0) 编辑
摘要:本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发异常错误 5.2.2 在声明部分引发异常错误 5.3 异常错误处理编程 5.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 -------------------------------------------------------------------------------- 即使是写得最好的PL/SQL程序也会遇到... 阅读全文
posted @ 2011-07-07 22:58 左正 阅读(393) 评论(0) 推荐(0) 编辑
摘要:本篇主要内容如下:2.1 PL/SQL块2.2 PL/SQL结构2.3 标识符2.4 PL/SQL 变量类型2.4.1 变量类型2.4.2 复合类型2.4.2.1 记录类型2.4.2.2 数组类型2.4.2.3 使用%TYPE2.4.3 使用%ROWTYPE2.4.4 LOB类型2.4.5 BIND 变量2.4.6 PL/SQL 表(TABLE)2.5 运算符和表达式(数据定义)2.5.1 关系运算符2.5.2 一般运算符2.5.3 逻辑运算符2.6 变量赋值2.6.1 字符及数字运算特点2.6.2 BOOLEAN 赋值2.6.3 数据库赋值2.6.4 可转换的类型赋值2.7 变量作用范围及可 阅读全文
posted @ 2011-07-07 22:48 左正 阅读(1531) 评论(0) 推荐(0) 编辑
摘要:本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INSTEAD OF)触发器 8.2.3 创建系统事件触发器 8.2.4 系统触发器事件属性 8.2.5 使用触发器谓词 8.2.6 重新编译触发器 8.3 删除和使能触发器 8.4 触发器和数据字典 8.5 数据库触发器的应用举例 ----------------------------------------------------------... 阅读全文
posted @ 2011-07-07 21:53 左正 阅读(461) 评论(0) 推荐(0) 编辑
摘要:本篇主要内容如下:6.1引言6.2创建函数6.3存储过程6.3.1创建过程6.3.2调用存储过程6.3.3AUTHID6.3.4PRAGMA AUTONOMOUS_TRANSACTION6.3.5开发存储过程步骤6.3.6删除过程和函数6.3.7过程与函数的比较6.1引言过程与函数(另外还有包与触发器)是命名的PL/SQL块(也是用户的方案对象),被编译后存储在数据库中,以备执行。因此,其它PL/SQL块可以按名称来使用他们。所以,可以将商业逻辑、企业规则写成函数或过程保存到数据库中,以便共享。过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出 阅读全文
posted @ 2011-07-07 21:45 左正 阅读(379) 评论(0) 推荐(0) 编辑
摘要:本篇主要内容如下:4.1游标概念4.1.1处理显式游标4.1.2处理隐式游标4.1.3关于NO_DATA_FOUND和%NOTFOUND的区别4.1.4使用游标更新和删除数据4.2游标变量4.2.1声明游标变量4.2.2游标变量操作游标的使用在PL/SQL程序中,对于处理多行记录的事务经常使用游标来实现。4.1游标概念在PL/SQL块中执行SELECT、INSERT、DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(ContextArea),即缓冲区。游标是指向该区的一个指针,或是命名一个工作区(WorkArea),或是一种结构化数据类型。它为应用等量齐观提供了一种对具 阅读全文
posted @ 2011-07-07 21:38 左正 阅读(404) 评论(0) 推荐(0) 编辑
摘要:ORACLE 常用的SQL语法和数据对象 一.数据控制语句(DML) 部分1.INSERT (往数据表里插入记录的语句)INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.日期字段的字段值可以用当前 阅读全文
posted @ 2011-01-03 01:42 左正 编辑
摘要:-- 表create table test (names varchar2(12), dates date, num int, dou double);-- 视图create or replace view vi_test asselect * from test;-- 同义词create or replace synonym aafor dbusrcard001.aa;-- 存储过程create or replace produce dd(v_id in employee.empoy_id%type)asbegin enddd;-- 函数create or replace function 阅读全文
posted @ 2011-01-03 01:40 左正 编辑
摘要:一.SELECT语句的完整语法为:    SELECT[ALL|DISTINCT|DISTINCTROW|TOP]  {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}  FROM tableexpression[,…][IN externaldatabase]  [WHERE…]  [GROUP BY…]  [HAVING…]  [ORDER BY…]  [WITH OWNERACCESS OPTION]    说明:    用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须 阅读全文
posted @ 2011-01-03 01:36 左正 编辑
摘要:一.Oracle的Cursors概念:游标:用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作。二.Oracle的Cursors分类:1.静态游标:分为显式游标和隐式游标。2.REF游标:是一种引用类型,类似于指针。三.Oracle的Cursors详细内容:1.显式游标:CURSOR游标名(参数) [返回值类型] ISSelect语句生命周期:a.打开游标(OPEN)解析,绑定。。。不会从数据库检索数据b.从游标中获取记录(FETCH INTO)执行查询,返回结果集。通常定义局域变量作为从游标获取数据的缓冲区。c.关闭游标(CLOSE)完成游标处 阅读全文
posted @ 2011-01-03 01:32 左正 编辑