随笔分类 -  Oracle

ORACLE数据库常用SQL及问题
摘要:1.情景展示 在oracle当中,如何统计某个字符/指定字符串在字符串中出现的次数? 如:411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681。 阅读全文
posted @ 2022-03-14 17:17 Marydon 阅读(5406) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 Oracle如何创建定时任务(定时器、调度)? 2.PLSQL 打开plsql,在对象当中找到Jobs,右键--》新建; 示例: 这里,需要注意的是: 必须给job class指定值,使用DEFAULT_JOB_CLASS即可,否则无法创建; 应用成功后,在jobs位置,右键,刷新,新 阅读全文
posted @ 2022-03-11 17:39 Marydon 阅读(4316) 评论(0) 推荐(1) 编辑
摘要:1.情景展示 在Oracle当中,当遇到负责的业务逻辑时,我们可能会需要写多个存储过程; 如果这些存错过程又有依赖关系,比如说:B存储过程只能等到A存储过程执行完毕才能执行,如何实现? 2.具体分析 在Oracle当中,也有包package的概念,我们可以将多个存储过程交由包来统一管理。 包结构如下 阅读全文
posted @ 2022-03-11 15:50 Marydon 阅读(2040) 评论(0) 推荐(1) 编辑
摘要:1.情景展示 在数据库中,我们经常需要对日期类型的字段进行操作,下面讲一下进行日期计算的三种方式。 2.具体分析 trunc(date[,fmt]) trunc()既可以对日期类型进行截取,也能对数值类型进行截取; 本文只介绍如何对日期进行截取,数值类型的截取方式见文末推荐。 参数说明: date 阅读全文
posted @ 2022-03-08 15:23 Marydon 阅读(1697) 评论(0) 推荐(1) 编辑
摘要:1.情景展示 当我们将数据导入到表中后,为了避免后续数据插入失败,一般情况下,会更改此表使用的序列的开始值。 如何修改? 2.原因分析 使用Navicat的话,是无法对序列的当前值,进行修改的。 小编为大家整理了3种实现方式,一起来看下吧。 3.解决方案 方式一:使用plsql; 打开plsql,找 阅读全文
posted @ 2022-02-16 11:31 Marydon 阅读(11036) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 使用Navicat,可以很方便的实现:mysql与Oracle的数据互传; 我将mysql数据库当中的某些表导入Oracle数据库后,导致: 查询导入的表名,被自动加上了双引号; 一旦手动将双引号删除,导入的表将无法查询,报错信息如下:ORA-00942: table or view 阅读全文
posted @ 2022-02-15 17:55 Marydon 阅读(2175) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 使用Navicat连接oracle数据库,报错信息如下: ORA-03135: connection lost contactProcess ID: 0Session ID: 0 Serial number: 0 或者,再次点击报错信息如下: ORA-28547: connection 阅读全文
posted @ 2022-02-15 11:52 Marydon 阅读(1797) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 我们知道:无论是mysql还是oracle,只要使用like查询,就可能会面临索引失效(不走索引)的问题; 下面,我们将一起来看看什么情况下,索引会失效,以及如何解决不走索引的问题。 已知,base_org_info表有两个索引 我们需要使用ORGNAME进行模糊查询,据此进行案例展示 阅读全文
posted @ 2022-02-06 21:00 Marydon 阅读(4124) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 有这样一种需求: 将数据按照机构进行分组,然后取每个机构下只取一条记录,如何实现? 2.mysql 分组查询出来某字段,然后和原来的表进行关联查询。 方式一:通过内连接来实现 查看代码 SELECT t3.INVOICINGPARTYCODE, t3.INVOICINGPARTYNAM 阅读全文
posted @ 2021-12-17 16:37 Marydon 阅读(1135) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 oracle和mysql关于正则表达式和对应的函数都一样。 正则表达式符号介绍: '^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。 '$' 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 阅读全文
posted @ 2021-11-28 12:40 Marydon 阅读(2910) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 在实际开发过程中,在新增表数据时,对于表字段主键,Mysql和Oracle的处理方式是不一样的。 2.Oracle Oracle的主键通过序列来实现; 要想使用序列,需要先给主键创建序列,通常以"seq_"+表名的格式进行命名,方便识别; 获取主键的方式:需要提前获取,也就是在插入表记 阅读全文
posted @ 2021-11-23 16:11 Marydon 阅读(838) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 两数相加,一个字段里有值,一个字段没值,为null,二者相加的结果为null。 2.原因分析 在SQL的语法中,数值+null=null,而不是数值+null=数值本身。 以数值字段求和为例,在mysql中,仅在所有行数据都不为null时进行求和运算,否则直接返回null。 3.解决方 阅读全文
posted @ 2021-04-13 10:51 Marydon 阅读(3517) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 有时候,我们需添加动态where条件,也就是多个if条件判断,如何实现? 动态SQL还是很常见的,这里分情况说明 2.mybatis mybatis的用法相对简单,是我们经常会用到的 直接使用<if test=""></if>标签搞定即可 2.mysql 动态where条件,通常会在存 阅读全文
posted @ 2021-03-25 19:00 Marydon 阅读(14868) 评论(2) 推荐(2) 编辑
摘要:1.情景展示 where限制条件后面如果想要加select语句的话,如何实现? 2.原因分析 通常情况下,where后面跟的是:clomn=值的方式,其实,=号后面也是可以使用查询语句的,但有使用限制条件,下面会说; 使用in()或者exists()函数,则基本上没有限制条件。 3.解决方案 方式一 阅读全文
posted @ 2021-01-16 18:09 Marydon 阅读(9544) 评论(7) 推荐(3) 编辑
摘要:1.情景展示 查询指定时间段内的某卡的每天的注册量 2.原因分析 使用group by按天进行分组查询,并将查询结果看做一张表; connect by递归查询出指定时间段所横跨的日期作为主表,注册量作为辅表,与主表日期进行关联查询 3.解决方案 SELECT NVL(APP_ZS, 0) ONLIN 阅读全文
posted @ 2020-06-17 16:38 Marydon 阅读(1503) 评论(2) 推荐(0) 编辑
摘要:1.情景展示 现在,已知两个日期,根据它俩查询所间隔的所有日期列表,如何实现? 2.原因分析 使用递归查询connect by来实现 3.解决方案 3.1 查询出间隔的天数列表 SELECT TO_CHAR(TO_DATE( '2020-06-01' , 'YYYY-MM-DD' ) + ROWNU 阅读全文
posted @ 2020-06-17 15:36 Marydon 阅读(951) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 Oracle 遍历游标的三种方式(for、fetch、while、bulk collect+forall) 2.问题分析 我们可以把游标想象成一张表,想要遍历游标,就要取到游标的每行数据,所以问题的关键就成了:如何取到行数据? 3.解决方案 方式一:FOR 循环(推荐使用) 变形一:遍 阅读全文
posted @ 2020-05-11 16:05 Marydon 阅读(5173) 评论(2) 推荐(2) 编辑
摘要:1.情景展示 根据第一个游标的数据产生第二个游标的数据,如何实现遍历? 三级关联查询如何实现? 存储过程如何使用临时表返回游标数据? 表结构展示 2.创建临时表 方式一:直接创建 /** * 创建临时指标表 */ CREATE GLOBAL TEMPORARY TABLE TAB_INDEX_TEM 阅读全文
posted @ 2020-04-30 17:19 Marydon 阅读(1879) 评论(2) 推荐(3) 编辑
摘要:1.情景展示 Oracle 分页查询用法 SELECT F.* FROM ( SELECT E.*, ROWNUM ROWNO FROM ( SELECT 1 FROM VIRTUAL_CARDLOG T ORDER BY T.LOGTIME) E WHERE ROWNUM <= 200) F WH 阅读全文
posted @ 2020-04-10 10:35 Marydon 阅读(314) 评论(0) 推荐(0) 编辑
摘要:1.情景展示 现在有一张表,需要将表中某字段的值不是以指定字符开头的列进行删除,如何实现? 2.问题分析 错误方案一:同事想到的是:这种方式 咱们来看一下,这个表总共有多少条数据 本来表数据总共才4万多条数据,然而使用上面的查询方式,却查出了1多个亿的数据,真不知道这数据库是怎么想的。 2024年3 阅读全文
posted @ 2019-07-19 18:36 Marydon 阅读(6211) 评论(4) 推荐(1) 编辑