
oracle
nayi_224
这个作者很懒,什么都没留下…
展开
-
oracle函数返回表
CREATE OR REPLACE TYPE obj_date IS OBJECT ( date_val DATE);CREATE OR REPLACE TYPE nt_date IS TABLE OF obj_date;create or replace function test_pipelined( p_num in number) return nt_date pipelined is begin for tab1 in (select s原创 2021-07-27 15:41:44 · 1305 阅读 · 0 评论 -
oracle 针对部分行创建唯一索引
在数据库的使用中有时会遇到这样的表:用一个字段来标识该列是否有效,标识为有效的数据中,又要求按照某一规则进行唯一性校验。举一个不太恰当的例子的话就是用户表,通过flag字段来标识该行数据是否已被删除,在有效的行中,又要求用户名user_name唯一。一种常见的解决方法是先建一个唯一约束来检查唯一性,再对user_name字段建一个索引来加快搜索速度。但是有两个缺点:唯一约束的效率和健壮性完全取决于创建人的经验索引中存在大量几乎不会被搜索的信息(已经被删除的用户信息不应该再被搜索到)实际上可以使用原创 2021-03-31 10:32:18 · 621 阅读 · 0 评论 -
oracle将日期差转换为时分秒格式
要求:计算2021/03/03 16:28:00 - 2021/03/03 14:25:01 = 02:02:59如果时间差小于一天,可以用以下简写方法with tab1 as (select to_date('2021/03/03 16:28:00', 'yyyy/mm/dd hh24:mi:ss') - to_date('2021/03/03 14:25:01', 'yyyy/mm/dd hh24:mi:ss') tim from dual)select to_char(t原创 2021-03-03 17:52:46 · 4187 阅读 · 1 评论 -
oracle事务隔离级别
ANSI/ISO SQL标准定义了4种事务隔离级别,具体为根据数据库是否会出现下列3种现象来区分的。1.脏读(dirty read):事务A中读取到事务B中未提交的数据。2.不可重复读(nonrepeatable read):在同一事务的不同时间点查询同一行数据,返回了预料外的被修改(或消失)的数据。3.幻读(phantom read):在同一事务的不同时间点进行同一查询,返回了额外的数据。不可重复读与幻读比较容易记混,只要记住,不可重复读针对的是修改,而幻读是新增。...原创 2020-07-16 17:22:15 · 593 阅读 · 0 评论 -
sql like替代写法大全
sql like语法替代(oracle)sql中instr substr 替代 like原创 2019-12-10 15:59:59 · 3439 阅读 · 0 评论 -
oracle发邮件 504 5.7.4 Unrecognized authentication type
我这次出问题的原因是,接收端要求建立安全连接,但是10g没有对应的方法。解决方法:使用oracle11g(10g没有UTL_SMTP.STARTTLS方法)的UTL_SMTP.STARTTLS,加到UTL_SMTP.EHLO的下面。代码大概是这样的 utl_smtp.ehlo(l_connection, 'xxx.xxx.com'); utl_smtp.starttls(l_...原创 2019-09-11 17:17:56 · 3883 阅读 · 0 评论 -
oracle中使用connect展开带有分隔符字符串时带有空值时的处理
使用版本为11g及以上对于aaa,bbb,ddd,ggg这样的字符串,可以使用connect语句将其拆分with tab1 as (select 'aaa,bbb,ddd,ggg' str from dual)select t1.str, regexp_substr(t1.str, '[^,]+', 1, level) res, level from ta...原创 2019-07-11 17:10:55 · 635 阅读 · 0 评论 -
oracle listagg函数bug记录
测试数据在文章的最后给出select *from test_190619_lagg_bug_1 t1, (select t2.sub_id, listagg(t2.val || '.' ) within group(order by t2.val) option_info from test_190619_lc2_2 t2 wh...原创 2019-06-19 17:36:42 · 926 阅读 · 0 评论 -
oracle创建存储过程报错权限不足
使用用户a直接执行insert into c.ccc(id) values(1); 可以运行,但是放在存储过程中报错权限不足。检查下用户a的权限select * from user_sys_privs;select * from role_sys_privs;select * from user_tab_privs;发现a的对象权限为空,角色权限中有insert any table,但...原创 2019-05-07 10:08:15 · 4268 阅读 · 0 评论 -
oracle union [all], intersect, minus
官方文档地址:https://docs.oracle.com/cd/E11882_01/server.112/e41084/queries004.htm#SQLRF52341You can combine multiple queries using the set operators UNION, UNION ALL, INTERSECT, and MINUS. All set operat...原创 2019-03-14 16:29:56 · 221 阅读 · 0 评论 -
oracle pivot,unpivot基本语法
文章目录适用版本,oracle11及以上。pivot老方法新方法unpivotxml适用版本,oracle11及以上。pivot老方法用于行转列。在11g之前,一般用这样的方法来做对于这样的表select 1 id, 'a1' typ, 1 val from dual union allselect 1, 'a2' , 2 val from dual union allselect...原创 2018-12-29 09:44:18 · 4324 阅读 · 0 评论 -
oracle 测试用相关函数
文章目录语句基本来自tom的书。runstats 比较两个方法的优劣通过几个监视动态性能的表来建立一个新的视图以及一个存储中间过程的表创建一套存储过程来监控运行状态使用示例上述例子所得出的结论修改记录语句基本来自tom的书。按照个人习惯做了一些小修改所有测试全部在PL/SQL Developer中进行runstats 比较两个方法的优劣通过几个监视动态性能的表来建立一个新的视图以及一...原创 2018-12-10 17:05:57 · 1238 阅读 · 0 评论 -
oracle keep 使用详解
语法摘自官方文档的语法:例子聚合函数分析函数应用场景使用示例效率解释可用范围总结语法摘自官方文档的语法: FIRST and LAST are very similar functions.先解释一下,first函数其实就是我们一般所说的keep函数,文档中并没有所谓的keep函数。由于first与last函数只有一个顺序的差...原创 2018-04-10 16:08:20 · 5298 阅读 · 0 评论 -
oracle connect by 递归查询用法
基本语法start with :设置起点,省略后默认以全部行为起点。connect by [condition] :与一般的条件一样作用于当前列,但是在满足条件后,会以全部列作为下一层级递归(没有其他条件的话)。prior : 表示上一层级的标识符。经常用来对下一层级的数据进行限制。不可以接伪列。level :伪列,表示当前深度。connect_by_root() :显示根节点列。经...原创 2018-04-04 14:42:50 · 25420 阅读 · 0 评论 -
Oracle Partition Outer Join,外链接的补充,实现稠化报表。
摘要本文主要阐述了为什么要使用Partition Outer Join,Partition Outer Join的使用方法,以及Partition Outer Join常见的应用场景。为什么要使用Partition Outer Join语法Partition Outer Join,分组(区)外链接。是oracle对于普通外链接的一种补充。掌握这个语法的关键在于了解在什么情况下传统的外链...原创 2018-05-03 08:12:22 · 775 阅读 · 0 评论 -
oracle rank聚合函数
语法使用目的 Purpose RANK calculates the rank of a value in a group of values. The return type is NUMBER.就是返回指定值在一个集合中的位置。使用示例建立测试表create table nayi_180517 as select decode(level, 6...原创 2018-05-17 16:18:27 · 262 阅读 · 0 评论 -
oracle 使用nullif解决除数为零的问题
先来说一下nullif的语法。 NULLIF compares expr1 and expr2. If they are equal, then the function returns null. If they are not equal, then the function returns expr1. You cannot specify the literal NULL fo...原创 2018-05-25 17:36:08 · 4505 阅读 · 0 评论 -
oracle lead/lag 函数 ignore nulls 功能在11g以下版本的实现
建立测试表11g中的写法model写法使用first_value/last_value+ignore的方法自连接其他oracle在11g中允许对lead/lag分析函数使用ignore nulls 语法以排除空值。这是一个很实用的语法,然而在低版本中却不能使用。本文将介绍几种可以在较低版本中实现类似功能的sql写法。建立测试表create tabl...原创 2018-05-15 16:21:55 · 4211 阅读 · 0 评论 -
oracle时间转字符串去除前导0
select to_char(trunc(sysdate, 'y'), 'fmyyyymmdd') from dual; 输出 201811实际上,fm是作用于后面的每一个表达式的(不包括text表达式)。比如 select to_char(trunc(sysdate, 'y'), 'fmdy"000u"; ,.,.yyyymmadddddddddyyy') from dual;输出...原创 2018-07-19 11:33:54 · 2133 阅读 · 0 评论 -
oracle中null值相关函数汇总
nvl最常用的函数。它接收两个参数。返回第一个非空值。若两个参数都为空,返回null。例:select nvl(null, 9695) from dual; --9695select nvl(123, null) from dual; --123select nvl(123, 9695) from dual; --123select nvl(null, null) ...原创 2018-08-24 10:42:09 · 1878 阅读 · 0 评论 -
oracle去除重复数据常用的方法
创建测试数据create table nayi224_180824(col_1 varchar2(10), col_2 varchar2(10), col_3 varchar2(10));insert into nayi224_180824select 1, 2, 3 from dual union allselect 1, 2, 3 from dual union allselec...原创 2018-08-24 17:23:50 · 131898 阅读 · 16 评论 -
oracle递归with
简介基本语法结果集顺序与connect相关语法的等效替换LEVELCONNECT_BY_ROOTSYS_CONNECT_BY_PATHNOCYCLE and CONNECT_BY_ISCYCLE递归with语法对connect语法的改进简介递归with(Recursive WITH Clauses)是一个主要用于层次查询(Hierarchical Q...原创 2018-08-29 17:18:29 · 11757 阅读 · 1 评论 -
oracle 根据系统表自动生成简单的查询,修改,新增语句
执行环境:pl/sql。主要适用于java/ibatis。创建测试表create table task.nayi_180904_01 (login_id varchar2(50),user_name varchar2(50),age number,create_time date default sysdate,score number);comment on colu...原创 2018-09-04 15:58:06 · 1173 阅读 · 0 评论 -
oracle connect by从句中的rownum
在构造数据时,对于单行的基本数据来说,connect by level与connect by rownum可以说是等效的。比如说下面的两个语句的结果集是一样的。with tab1 as (select 'a' id, 2 num from dual)select*from tab1connect by level <= 2;with tab1 as (select 'a' ...原创 2018-10-08 17:09:36 · 708 阅读 · 0 评论 -
oracle row_number() rank() dense_rank()区别,备忘笔记
经常用经常忘的东西,做个笔记。row_number 连续rank 并列跳过dense_rank 并列不跳过sql:with tab as (select 1 a from dualunion allselect 2 a from dualunion allselect 2 a from dualunion allselect 3 a from dual)sel...原创 2018-04-09 10:22:19 · 208 阅读 · 0 评论