![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ORACLE
大饼Ora
这个作者很懒,什么都没留下…
展开
-
lag 和lead 函数
oracle 的分析函数是非常好的一个功能,借助它们,我们可以很方便的实现一些特殊的语句需求,省去了自己实现的诸多麻烦。 今天用到了lag 和lead 这两个分析函数,稍稍整理一下。lag 和lead 可以 获取结果集中,按一定排序所排列的当前行的上下相邻若干offset 的某个行的某个列(不用结果集的自关联);lag ,lead 分别是向前,向后;lag 和lead转载 2016-01-04 10:15:16 · 517 阅读 · 0 评论 -
oracle 之 语句执行顺序
转自http://wang286480403.iteye.com/blog/1899915转自http://wang286480403.iteye.com/blog/1899915转自http://wang286480403.iteye.com/blog/1899915重要的事情说三遍。SQL Select语句完整的执行顺序: 1、from子转载 2017-04-14 17:05:44 · 309 阅读 · 0 评论 -
oracle 之where子句和having子句
1.where 不能放在GROUP BY 后面2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以具体说明select mobile from table1 where sum(score) = 1group by mobile报错原创 2017-04-14 17:02:02 · 420 阅读 · 0 评论 -
oracle 之replace 和 regexp_replace函数
oracle中replace函数:用法:replace(tarString,paString,gString)。参数说明:tarString,要替换的原字符串;paString,需要替换的子字符串;gString,需要替换的目标字符串。具体说明:select replace('01111','0','2') from dual;结果是21111若减少gString参数,即为将t原创 2017-04-14 14:57:57 · 2111 阅读 · 0 评论 -
使用sqlldr 遇到的问题
错误代码:SQL*Loader-457: Comparison text of CONTINUEIF LAST must have length 1 not 63先到http://docs.oracle.com/cd/A57673_01/DOC/server/doc/MSG73/ch7.htm 去查找错误原因下面附控制文件代码load datainfile *conti原创 2016-03-03 15:36:11 · 2132 阅读 · 0 评论 -
sqlld 错误
使用sqlldr导数时出现如下错误:" Record 1: Rejected - Error on table XXX, column X.Field in data file exceeds maximum length "上网查了一下找到原因了。 原来表中定义的字段 X 虽然是NVARCHAR(500); 但是用控制文件(CTL)原创 2016-03-10 16:06:26 · 912 阅读 · 0 评论 -
Oracle之select into var1
前几天同事写存储过程遇到这么一个问题:select t1.a into t_code from table1 t1 ----t_code是定义的varchar2紧接着select count(1) from table2 t2 where t2.t_code = t_code他就发现查询的结果是table2的全量,where条件没起作用。本来我以为是select int原创 2017-04-13 14:44:45 · 429 阅读 · 0 评论 -
Oracle数据库,唯一标识ID的生成
方法一:使用Sequence方法二:使用guid。获取方式:select sys_guid() from dual;SYS_GUID (),是Oracle 8i 后提供的函数。SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)组成。可以用来生成唯一原创 2016-12-15 15:25:19 · 25767 阅读 · 1 评论 -
ORACLE 将number型的秒/毫秒值转成date类型
转自 http://blog.csdn.net/zhengzhb/article/details/7082911在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的,1323957678114132132699429513221293068041322129716220猜到应该是1970年1月1号0转载 2016-02-26 09:45:40 · 2726 阅读 · 0 评论 -
FOR XML PATH
转自http://www.cnblogs.com/4mylife/archive/2012/09/06/2672755.htmlFOR XML PATH 方法是用于将查询结果集以XML形式展示,这样展示方式的好处不言而喻。现在我要介绍的FOR XML PATH的“另类”用法。首先,我们先来看看它的正常用法。下图是我们用到的一张TEST_PERSON表:转载 2016-02-25 10:54:38 · 601 阅读 · 0 评论 -
listagg函数
跟10g的wm_concat类似,listagg是11g的聚集函数,但是有4000字符的限制。转自http://blog.itpub.net/18922393/viewspace-7543811,测试数据SQL> SQL> select empno,ename,deptno from scott.emp; EMPNO ENAME DEPTN转载 2016-03-08 10:08:28 · 1247 阅读 · 0 评论 -
用sqlldr 具体怎么快速导出1亿的csv文件
下载一个sqluldr2.exe cmd命令 cd到sqluldr2.exe 目录下USER=用户名/密码@实例名 sql=C:\sql语句.sql head=no field=0x7c0x7c FILE=C:\导出的文件名field=0x7c0x7c 是分隔符原创 2016-03-17 16:18:22 · 1530 阅读 · 0 评论 -
oracle中Blob和Clob类型的区别
BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。其实两个是可以互换的的,或者可以直接用LOB字段代替这两个。但是为了更好的管理ORACLE数据库,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便转载 2016-02-15 10:24:41 · 374 阅读 · 0 评论 -
oracle update从一个表更新另一个表字段
当然可以用merge into ,但是前提是更新表t1和被更新表t2是1对1的关系。如果有1对多的关系,会报错ORA-38104: Columns referenced in the ON Clause cannot be updated: 可以用这种方法:update (select .....) set column1 = column2;原创 2016-01-04 13:16:58 · 2408 阅读 · 0 评论 -
wm_concat(column)结果为<clob>的解决办法
某个column的逻辑是如有多个则用英文逗号隔开;上网查询资料,是用oracle自带的wm_concat()函数;但select出来的结果是;然后再百度,解决方法是to_char一下;to_char(wm_concat(column))..原创 2015-12-24 11:47:30 · 18418 阅读 · 1 评论 -
oracle TRANSLATE函数详解
translate(string,from_string,to_string)返回将(所有出现的)from_string中的每个字符替换为to_string中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_string 比 to_sting 长,那么在 from_string 中而不在 to_string 中的额外字符将从 st转载 2015-12-24 10:05:38 · 424 阅读 · 0 评论 -
oracle 之 行转列函数
10g的wm_concat11g的listagg,但是有4000字符的限制。用法举例---未完待续原创 2017-04-27 14:58:53 · 597 阅读 · 0 评论