Oracle
josjonah
这个作者很懒,什么都没留下…
展开
-
Oracle 显示行号
PL/SQL工具 窗口内右键选择Gutter即可.转载 2018-06-25 10:27:03 · 2784 阅读 · 0 评论 -
ORA-08002:序列XXXXXXX.CURRVAL尚未在此进程中定义
出现 ORA-08002: 序列XXXXXXX.CURRVAL 尚未在此进程中定义。 导致原因:因为是首次查询序列的当前值,内存中之前并没有缓存序列的任何值,所以需要先查询一下序列的下一个值(此时,Oracle会自动缓存已查询的序列值),再查询序列的当前值。 XXXXXXX.CURRVAL 只有在访问了XXXXXXX.NEXTVAL时才有效如select XXX...转载 2018-11-28 13:44:09 · 552 阅读 · 0 评论 -
存储过程sysdate存为Date类型丢失时分秒
1、问题:execute immediate 'update sms_mt_send_detail'||v_day||' set ERRORCODE = '||v_errorcode||',ISMG_STATUS='''||v_ismg_status||''',rpt_time='||sysdate||' where MT_SEND_DETAIL_ID ='||v_msgid;2、发现...转载 2018-11-27 15:58:16 · 928 阅读 · 0 评论 -
Oracle存储过程Insert插入数据进多个数据库并有返回值
create or replace procedure pro_sys_userrole(v_userid in varchar,--传入参数v_roleid in varchar,v_num OUT VARCHAR2--返回参数)isv_sql varchar2(10000);--变量begin begin v_sql:='insert into sys_user_rol...原创 2018-11-26 17:05:29 · 4149 阅读 · 0 评论 -
execute immediate的简单用法(oracle)
直接上示例代码:create or replace procedure proc_test(--参数区域)is --变量区域 --sql脚本 v_sql varchar2(2000) :=''; --记录学生数量 v_num number;begin--执行区域 -- execute immediate用法1:立刻执行sql语句 ...转载 2018-11-26 13:41:50 · 202 阅读 · 0 评论 -
Oracle中Merge into用法总结
起因: 前段时间,因为涉及到一张表的大数据操作,要同时进行增删改,我跟师傅想了很多优化办法,结果都不尽人意。刚开始用的就是原始算法,先更新现有记录,再插入满足要求的其他记录,最后再删除多余记录,但是少量数据还可以,10W条数据就不行了,前台的超时时间是60s,远远无法满足要求。之后又想办法将任务进行拆分,根据每条记录流水号尾字符不同进行拆分,用多个线程同时执行,一直拆分成10个任务(尾字符分...转载 2018-11-23 18:10:04 · 193 阅读 · 0 评论 -
oracle 整数到时间转换,时间到整数转换
1:整数到时间的转换: create or replace function inttotime(in_number NUMBER) return date is begin return(TO_DATE('19700101','yyyymmdd') + in_number/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),...转载 2018-11-15 15:51:17 · 942 阅读 · 0 评论 -
oracle如何拆分以逗号分隔的字符串为多列?
最近遇到一个问题,需要把一个带有,的字符串拆分成多列。通过查询资料,这个操作需要使用以下2个关键知识:1. REGEXP_SUBSTR函数这个函数的作用是正则分隔字符串,用法为function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符串__pa...转载 2018-11-09 09:56:02 · 18031 阅读 · 1 评论 -
连接Oracle数据库
连接字符串:1.OleDB连接驱动OraOLEDB.Oracle Oracle公司提供的OleDB驱动,Provider需要根据实际情况修改,支持32bit与64bit,需要安装Oracle Data Provider for OLE DB. 连接字符串: connectionString="provider=OraOLEDB.Oracle;Persist Securit...转载 2018-11-01 15:07:53 · 594 阅读 · 0 评论 -
烟火_ ORACLE lag()与lead() 函数
一、简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤。这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。over()表示 lag()与lead()操作的数据都在over()的范围内,他里面可以使用partition by 语句(用于分组...转载 2018-09-14 15:31:03 · 172 阅读 · 0 评论 -
ORA-00911: 无效字符 问题和解决
今天写sql查询数据库数据时出现ORA-00911: 无效字符问题,我把SQL打到控制台上面,然后COPY到SQL PULS中是可以查询到数据的,但是在MyECLIPSE中执行就报ORA-00911: 无效字符的错误,我查了一下,我的是类似这种的select count(*) as datas from YY_GH_HYXX where pbrq between to_date(t...转载 2018-08-21 11:26:27 · 3641 阅读 · 2 评论 -
oracle 整数到时间转换,时间到整数转换
1:整数到时间的转换:create or replace function inttotime(in_number NUMBER) return date is begin return(TO_DATE('19700101','yyyymmdd') + in_number/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24)...转载 2018-07-14 21:00:49 · 12979 阅读 · 0 评论 -
oracle 去重复数据(取最新时间数据)
select t.* from ( select a.*, row_number() over(partition by 需要分组的字段 order by 时间字段 desc) rw from 表 a where 条件 ) t where t.rw = 1...转载 2018-07-14 17:54:15 · 5524 阅读 · 1 评论 -
Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列
前台传来字段 v_name的值是'1,2'然后sql是 select * from user where name in (v_name)直接查是错的,所以要将v_name进行处理SELECT REGEXP_SUBSTR(v_name, '[^,]+', 1, LEVEL) FROM DUALCONNECT BY REGEXP_SUBSTR(v_name, '[^,]+', 1, L...转载 2018-12-25 19:08:54 · 748 阅读 · 0 评论