oracle
ITWUYI
这个作者很懒,什么都没留下…
展开
-
oracle trunc函数
SELECT sysdate FROM dual;--2021-03-15 10:21:35select trunc(sysdate) from dual;--2021-03-15 00:00:00select trunc(sysdate, 'mm') from dual;--2021-03-01 00:00:00select trunc(sysdate,'yy') from dual;--2021-01-01 00:00:00select trunc(sysdate,'dd') from dual原创 2021-03-15 10:30:25 · 338 阅读 · 1 评论 -
Oracle hints select /*+index()*/
Oracle Hints是一种机制,用来告诉优化器按照我们的制定的方式生成执行计划,而不是根据它自己的分析生成执行计划。一、我们可以用Oracle Hints来实现1) 使用的优化器的类型2) 基于代价的优化器的优化目标,是all_rows还是first_rows。3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。4) 表之间的连接类型5) 表之间的连接顺序6) 语句的并行程度二、Hints应用要求Hints只应用在它们所在sql语句块(statement原创 2020-12-24 10:18:31 · 6695 阅读 · 5 评论 -
oracle常见的长度限制
oracle常见的长度限制1、长度限制说明1. IN 子句中的LIST个数最长为1000,超过该数目将报错,这里可转用一个临时表来解决;2. * CREATE TRIGGER语句文本的字符长度不能超过32KB(触发器中不能使用LONG, LONG RAW 类型;触发器内可以参照LOB 类型列的列值,但不能通过 :NEW 修改LOB列中的数据;)顺便说一下,触发器中的PARENT关键字,只在嵌套表触发器中有效;3. * 11G以前,DBMS_SQL对输入的SQL长度不能超过32K,原因是输入参原创 2020-11-16 21:16:04 · 2648 阅读 · 0 评论 -
Oracle使用IN时不能超过1000的问题
Oracle使用IN时不能超过1000的问题1、问题引入 ORA-01795: 列表中的最大表达式数为 1000当我们使用orcale的in语法时,如果in()里面的内容元素个数超过1000个就会报 ORA-01795的错误。2、问题解决最笨重的方法,就是每当达到999的倍数加一就开始用or in():<select id="selectListByListid" resultType="com.itwuyi.Wuyi"> select * from TEST_LI原创 2020-11-16 21:05:48 · 657 阅读 · 0 评论 -
ORA-01745: 无效的主机/绑定变量名
ORA-01745: 无效的主机/绑定变量名1、问题引入当使用oracle数据库,并且使用mybatis 批量插入数据时,如果插入的条数过多,会抛出一个异常:Java异常之ORA-01745: 无效的主机/绑定变量名。比如,下面一段代码:<insert id="batchInsert" parameterType="list" useGeneratedKeys="false"> INSERT INTO TEST_ITWUYI_DL(<include refid="Down_原创 2020-11-16 20:57:10 · 14906 阅读 · 4 评论 -
Oracle之分组合计、百分比详解
日常工作中,我们常常需要开发报表或者统计一些数据的百分比、合计,这时候,下面的几个函数可以很快地解决问题。它们不仅sql语句少,而且性能更好。下图即为我们这次要统计的结果展示。 常用的函数如下:case when...then...else...end, regexp_like, ratio_to_report(score) OVER(),ro...原创 2020-06-12 10:45:06 · 6215 阅读 · 0 评论