几个常见函数的非常见用法
1、instrinstr函数用于定位指定字符串某次出现的位置。通常情况,都是根据顺向查找,即从左向右查找,比如有字符串:1,2,3,4,5,6现在要查找第3个","出现的位置,则可以:select instr('1,2,3,4,5,6',',',1,3...
Oracle 树形结构查询的特殊用法
有个特殊的案例,如下:给出A、B、C三个元素,求出这三个元素对应的所有非空子集(含本集),且是顺序无关的。问用SQL语句该如何实现?首先,我们可以确认的是,这三个元素所组成的非空子集为:AA,BA,B,CA,CBB,CC这...
plsql下nocopy参数的含义
对于nocopy参数,了解的时间也不是很长。一般我们在写函数或过程的时候,使用out的情况比较少,更不提效率上觉察到差别了。后来了解到指定nocopy时,效率要比不指定的要高。但是不知道为什么。今天看到了一篇Ora...
oracle dbms_metadata.get_ddl实现对子句输出的控制
Oracle中,为了获取object的定义语句,我们可以通过以下几种方式来实现:1、视图定义可以通过user_views的text来查询得到;2、存储过程、函数、包、类型等的定义可以通过dba_source视图来查询得到;3、通过dbms_meta...
oracle下interval类型的用法总结
什么都不说,先上例子:select date '2010-01-01' + interval '21' year from dualselect date '2010-01-01' + interval '123-2' year(4) to month from dualselect date '2010-01-01' + interval '100' month from ...
oracle10201 plsql 中max的Ora-06502异常
先看例子:SQL> select * from v$version; BANNER----------------------------------------------------------------Personal Oracle Database 10g Release 10.2.0.1.0 - ProductionPL/SQL Release 10.2.0.1.0...
V$SQL_BIND_DATA
V$SQL_BIND_DATA
Oracle 工具包记录
平时接触了很多Oracle的包,但是一直没有做一个系统的总结。于是只能是书到用时方恨少啊,知道有这么个功能,但是就是不知道从哪里去获取。所以今天暂时罗列一些能记起来的:系列包名包描述常用功能 DB...
oracle wrap加密包破解问题
之前从itpub上找到了关于Oracle10g下wrap包的破解方法:http://www.itpub.net/thread-1154232-1-2.html总得来说,Oracle加密的原理就是先对源码进行lz压缩lzstr,然后对压缩数据进行SHA-1运算得到40位的加密串shstr...
【转】Oracle 异常处理
控制PL/SQL错误 EXCEPTION,SQLCODE,SQLERRM --浏览时可通过查找功能跳跃式的寻找自己要查看的内容!一、错误控制一览在PL/SQL中,警告或错误被称为异常。异常可以是内部(运行时系统)定义的或是用户定义的。内部...
oracle to_char函数
The following are number examples for the to_char function.to_char(1210.73, '9999.9') would return '1210.7' to_char(1210.73, '9,999.99') would return '1,210.73' to_char(1210.73, '$9,999.00') would re...
Oracle NLS_TIMESTAMP_FORMAT参数
20:14:42 lyon@ORCL> alter session set nls_timestamp_format = 'yyyy-mm-dd hh24.mi.ss.ff';Session altered.20:15:32 lyon@ORCL> select ora_rowscn, scn_to_timestamp(ora_rowscn) from ow_subscriber where ro...
Oracle写本地文件
Oracle写本地文件是指写到运行Oracle的主机上,而不是运行该脚本的机器上。说起来有点拗口,实际上就是无论在哪里执行这个过程,生成的文件始终都是在服务器上的。下面过程实现了这个功能:logdir是指文件存放路径。...
由Oracle触发器死锁及行级锁限制所衍生的解决方案
这里主要对前面触发器死锁那篇文章的具体化说明:首先建立临时表(session级)。create global temporary table tilog(rid urowid, lock_flag,update_flag,tmstmp timestamp(6)) on commit preserve rows;由于是sess...
Oracle触发器死锁问题解决
这两天一直在因为系统初期设计原因导致的一个触发器问题。问题如下:有表T,有客户编号、账户编号及地址三个字段(为方便起见以最少字段描述)。一个客户编号下可能存在多个账户编号(3个或4个)。假设客户编号C0下...
利用dbms_metadata.get_ddl生成对应定义语句
这个话题不仅在网上已经被重复过不知道多少次了,在我的这个blog上也已经是第二次来实现这个功能了。第一次的算法比较土,就是找到指定的关键字就换行,如:tablespace/storage等。这种方式很大的缺点就是如果是表定...
20090525 Oracle知识总结
今天学习了几个知识点:1、关于Oracle用户下不能编译存储过程而报错的解决;2、创建自定义函数索引时出现的问题;3、关于清空buffer_cache的方法;4、关于利用type进行一些转换。 1、默认情况下,如果没有编...
oracle创建类型之object
产品表product:drop table product;create table product (product_id number(18) primary key, product_name varchar2(255), expire_date date, remark varchar2(255), product_fee_id number(18));对应产品的费用...
写的一个SQL
为给客户统计机顶盒使用分布情况所写的一个SQL语句。虽然技术含量可能不是最高的,但是绝对是最复杂的。要实现这个统计,前提当然还是要对业务有比较深的了解。可能有人会质疑语句的效率,经过实际的运行,最快100秒...
dbms_ldap实现ldap数据修改
另一个存储过程,实现ldap数据的修改,具体各步骤含义已经在前面一篇中说明了,这里跟前面不同之处主要就是调用的函数不同了:前面是add_s(),这里是modify_s():create or replace procedure w_proc_ldapmodify(lda...