自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Oracle CLOB处理:文本查找对比

CLOB里保存的文本是[NAME李大哥AGE20…]或者[暂无登记]业务要求:要查询出来CLOB的内容,并且找到里面有个文本是 '暂无登记’的数据。涉及到的操作:去除换行:select replace(字段名,chr(10),’’) from dual;去除回车:select replace(字段名,chr(13),’’) from dual;去掉左右空格:select trim(字段名) from dual;判断COLB的长度:select DBMS_LOB.GETLENGT

2020-08-25 14:01:20 848

原创 Oracle 函数使用:DISTINCT

常用用于查询单个字段时去重,且要放在所有列名的前面。(当用于多个列去重,相当于将两个列按顺序组合后去重,业务中未使用过,以下不提及)作用于单个列时:select distinct t.name from t_student t ;此时作用和select t.name from t_student t group by t.name;效果相同。引申:select count(distinct t,name) from t_student t ;可以对去重后的结果计数。...

2020-08-21 17:02:32 1508

原创 Oracle 函数使用:TABLE()

业务场景:调用自定义FUNC_方法(用于分割字符串的方法)后返回值为数组类型,需要获取数组中的第一个元素(第一个字符段)。1 - 先执行查看结果select split(‘20200820-20200821’) from dual;结果:value_colunm1202008202202008212 - 查看具体函数函数方法:split(all_str,str)方法入参: 20200820-20200821 字符型方法返回:数组类型,数组定义在方法里3

2020-08-21 16:49:23 1898 1

原创 Oracle COMMENT ON 添加注释

COMMMENT ON 用来给表或表的字段加以说明,使用举例:表:T_STUDENT列:NAMECOMMENT ON T_STUDENT.NAME IS ‘NAME OF STUDENT’;

2020-07-31 17:30:00 486

原创 Oracle 查询数据库存储过程的数量 USER_OBJECTS

USER_OBJECTS 是Oracle 字典表 的视图,在PLSQL或者其他数据库客户端可以直接查看USER_OBJECTS的创建语句就可以查到包含的各种类别的信息;下面贴出来该视图的 USER_TYPE 列的类型,可对数据库内对应类型的个数进行统计,关于其他列的信息,大家自己查看视图创建语句即可。USER_OBJECTS包含了:OBJECT对象、TABLE 表、VIEW 视图、PROCEDURE 存储过程、FUNCTION 函数、INDEX 索引、TRIGGER 触发器 等类型的数据

2020-07-31 17:11:03 3998

转载 Oracle 同一列字符串拼接的两种方法

第一种:老版本可以使用wm_concatselect wm_concat(name) from tbname ;第二种:11gr2可以使用listaggselect listagg(name,’,’) within group(order by name) from tbname ;区别在于:第一种,WM_CONCAT拼接默认是 ‘,’,逗号拼接,需要其他符号时,需要再用REPLCAE函数替换。第二种,在引号内,可以直接使用需要的拼接符号,当然,要注意版本支持。...

2020-07-30 17:32:50 7732

原创 Oracle 日期格式转换:XXXX年XX月XX日

使用TO_CHAR解决,如下图:

2020-07-22 10:59:22 2452

原创 Oracle 视图:创建视图,添加新的一列

业务需求:xm:张三gh:C001bm:财务部要求在视图中显示格式:con:张三-C001-财务部create or replace view v_tjbas (select t.xm,t.gh,t.bm,t.xm||'-'||t.gh||'-'||t.bm con from tjb t);

2020-07-20 11:25:24 3276

原创 Oracle 函数使用:TRUNC

1 - 做日期格式转换select trunc(sysdate) from dual; --2020/07/16,时间格式的年月日select trunc(sysdate,‘yy’) from dual;–2020/1/1,返回当年第一天select trunc(sysdate,‘mm’) from dual;–2020/2/1,返回当月的第一天select trunc(sysdate,‘d’) from dual;–2020/2/12,返回当前星期的第一天,即星期天select trunc(sy

2020-07-16 14:43:00 158

原创 Oracle 函数使用:CONTINUE

continue和break 在FOR IN ( ) LOOPEND LOOP;中用于循环控制break用于终止循环,continue用于跳过本次循环,continue后面的zhi代码将不被执行,直接进入i+1循环。

2020-07-15 20:07:17 3661

原创 Oracle 函数使用:TRANSLATE

替换特定字符串直接上基础例子:--abcdefgaSELECT TRANSLATE('abcdefga','abc','wo') FROM DUAL;--wodefgw我遇到的实例:存储过程传入 [1,2,3,4] 数组形式的id字符串,需要在存储过程中根据id进行查询表中数据,对数据进行逐条操作。我的SQL:入参:I_STR表名:TableSELECT * FROM Table;WHEREINSTR( TRANSLATE( TRANSLATE('I_STR', '[',','

2020-07-14 18:17:14 208

转载 Oracle 总结 常用日期格式转换

转载链接:oracle常用的时间格式转换(一)全文直接转载,可以点击链接直接查看,后续有时间会对本文格式进行调整方便自己查阅。1:取得当前日期是本月的第几周SQL> select to_char(sysdate,‘YYYYMMDD W HH24:MI:SS’) from dual;20030327 4 18:16:09SQL> select to_char(sysdate,‘W’) from dual;T42:取得当前日期是一个星期中的第几天,注意星期日是第一天SQL>

2020-07-07 10:49:57 4156

原创 Oracle SQL报错 : ORA-01810 : 格式代码出现两次

错因:使用日期/字符格式转换时出现了两次MM(mm)(我之前以为是TO_DATE(TO_CHAR(date日期数据) )两次转换出现了错误,其实是因为书写格式错误)to_date('2016/8/30 23:59:59','yyyy/mm/dd hh:mm:ss')书写格式时,后面的分钟数要使用 mito_date('2016/8/30 23:59:59','yyyy/mm/dd hh:mi:ss')还要注意,24小时制 hh24to_date('2016/8/30 23:59:59','y

2020-07-07 10:37:59 776

原创 Oracle SQL 报错:ORA-01722 无效数字

遇到一个非常长而复杂的SQL,运行一年没出错,近期可能由于部分数据变动,使得SQL运行时报错01722,耗时一天,终于解决了。首先放出来参考的博文,给了我一个好的处理方向,非常感谢。把参考的博文放在下面引用了,可以直接查看。ORACLE-023:令人烦恼的 ora-01722 无效数字曾经一段时间内写sql语句时,老是莫名其妙的报ora-01722。对于这个错误提示,尤其是对于一个复杂的sql语句,很是郁闷,因为很多时候都不知所然。通过每次碰到的总结,其实也不是那么难以解决的,主要原因是:1

2020-07-06 10:49:44 9327

原创 Oracle 函数使用:EXISTS & NOT EXISTS

exists(条件):括号里的条件为真(存在)not exists(条件):括号里的条件为假(不存在)使用示例:SELECT COUNT(1) FROM TUSER T WHERE EXISTS(T.NAME IS NOT NULL);SELECT COUNT(1) FROM TUSER T WHERE NOT EXISTS(T.NAME IS NULL);以上和 IN & NOT IN & INSTR() 类似。...

2020-06-12 11:10:12 942

原创 Oracle 函数使用:%ROWTYPE

一般在存储过程的变量定义会涉及:// 数值类型V_COUNT NUMBER(16); V_NUMBER NUMBER(10); --字符串V_STR VARCHAR2(100); // 相当于对象类型,其数据类型和数据库表的数据结构相一致// 把查询的一条数据存进去,想使用哪个属性[列],就直接 .列名 即可V_TUSER TUSER%ROWTYPE; 涉及的用法示例:--声明好变量后,将结果赋值给V_TUSER变量SELECT * INTO V_TUSER FROM T

2020-06-12 10:40:33 658

原创 Oracle 函数使用:CURSOR游标简单案例

做一个常用的基本用法的记录,方便以后查看,cursor有多种用法,一般使用到游标说明数据处理已经有点复杂了,会结合其他关键字函数操作,复杂的需要大家自己研究。DECLARECURSOR V_USER_LIST IS SELECT * FROM TUSER;BEGIN FOR I_USER IN V_USER_LIST LOOP --每次读取一条数据,在这里进行业务处理 END LOOP; END;先写一个简单的用法,后面有时间再补充。...

2020-06-12 10:29:03 550

原创 Oracle SQL 报错:ORA-00936 缺失表达式

ORA-00936 缺失表达式错误原因情况之一,关键字使用不规范,写多或者少写了就会报错。报错可能会在别的地方标红,而不在错误的SQL位置报红,所以要细心检查,注意书写格式排版。笔者编写存储过程时,多写了一个between,简单记录一下,如下select sum(case when ((table.salary=0) or (table.age=0)) and (table.birthday between between data_1 and date_2 )then 1 else 0 e

2020-06-09 15:55:00 29776

原创 Oracle SQL 报错:ORA-00909 参数个数无效

主要是涉及:NVL(需要处理的数据,前者数据如果为空值的替换值) 函数使用nvl函数时,忘记了写逗号,或者没有写替换值。大意了。

2020-06-09 15:42:47 4297

原创 Oracle 函数使用:WITH AS

With AS类似于查询时的临时表一样。特点1-是为了在复杂逻辑实现中减少重复查询,提高可读性的一个关键字。2-它的每个查询结果都保存在内存中,且先创建的表在后续的查询中都可以使用。直接上用法with A as (select * from tablename), B as (select * from A), C as (select * from B)select * from C where ...上面是笔者认为易于理解的例子,相当于一步一步筛选出所需数据

2020-06-09 12:21:10 762

原创 Oracle 函数使用:LPAD RPAD

基本语法 LPAD( string, padded_length, [ pad_string ] )参数string : 源字符串padded_length : 最后返回的字符串的长度pad_string : 用于填充的字符,可以不填,默认为空字符实际运用情景一:如果最终返回的字符串的长度比源字符串的小,那么此函数实际上对源串进行截取处理,。如下SELECT LPAD('20190609',4) FROM DUAL操作结果:2019情景二:如果padded_length比源字符串的长

2020-06-09 12:08:01 201

原创 Oracle SQL 报错:ORA-06512 字符串缓冲区太小

Oracle: ORA-06512:字符串缓冲区太小报错的意思很简单,字符串缓冲区小了,原因:1-字符串给设定的确实很小,需要扩大。2-字符串大小本身正常,只是因为书写错误,导致读取字符串出现问题而报错,需要修改SQL。我这里是编写存储过程中,一不小心将拼接 V_SQL 的查询SQL字符串写错。--本该是这样V_SQL = SQL_1 || 参数名 || SQL_2;--错误写法,报错V_SQL = SQL_1 + 参数名 + SQL_2;大意。...

2020-06-09 10:59:04 27006

原创 Oracle SQL 报错:ORA-00972

ORA-009721 - 我的错误原因:由于调用函数处理列值的时候,括号没成对或者加号没处理好,误将计算公式内容匹配成别名。故报错别名太长。错误截图:2 - 错误示例:--函数组合的时候要注意括号的匹配,如果括号不匹配,则会把)后面的都认定为别名,会超过长度报错SELECT T.ID, to_char((nvl(num1, 0)+nvl(num2, 0)), 'FM999,999...

2019-12-08 14:17:25 1643

原创 Java 内存分配:举例分析堆栈常量池

String s = new String(“string”),产生了几个对象?引发的思考直接举栗子,一个一个分析:第一个 // 引用变量str1和str2在栈中,而helloworld在常量池中 String str1 = "hellowporld"; String str2 = "hellowporld"; System.out.println(str1 =...

2019-11-28 22:27:34 154

原创 Oracle SQL 报错:ORA-06550

Oracle存储过程报错:ORA-065501 - 报错内容2 - 报错原因3 - 调整方式4 - 原因分析1 - 报错内容PLSQL中编写完存储过程,测试使用存储过程,报错:查询出错[SQL数据集[SQL_XY*****]游标方式执行时候出现错误:java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: PLS-00306: wrong number...

2019-11-13 11:38:54 70970

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除