随笔分类 - Oracle
摘要:一、判断是否为数字的方法 在Oracle中,常用的判断是否为数字的方法是使用REGEXP_LIKE函数和正则表达式。 SELECT CASE WHEN REGEXP_LIKE('123', '^[[:digit:]]+$') THEN '是数字' ELSE '不是数字' END AS check_r
阅读全文
摘要:有的时候,我们在创建oracle 自增序列时,会报错。这个时候不用慌,表创建完了就不用管了。然后我们可以根据下面的教程中的第二步,第三步,来创建序列。 -- 第一步创建表 create table t_user( user_id number not null primary key, user_n
阅读全文
摘要:1、去空白符SQL: SELECT regexp_replace(STR,'^\s*','*') AS "去掉左边空白符", regexp_replace(STR,'\s*$','*') AS "去掉右边空白符", regexp_replace(STR,'(^\s*)|(\s*$)','*') AS
阅读全文
摘要:1、一行 SELECT T.ID, REGEXP_SUBSTR(T.VALS, '[^,]+', 1, LEVEL) AS VAL FROM (SELECT '101' ID, 'A,B' VALS FROM DUAL) T CONNECT BY LEVEL <= REGEXP_COUNT(T.VA
阅读全文
摘要:1.去重思路:利用listagg会忽略null值的特点 2.上SQL: with T_TEST as ( select 'TOOL-001' EQPT_ID, 10493721 ENTITY_GROUP_RRN, 'JITAI-1' STATION_ID from dual union all se
阅读全文
摘要:1. wm_concat select t.type, to_char(wm_concat(t.id||' '||t.seq)) as id_seq, to_char(wm_concat(t.seq)) as seqs from ( select 'A' type, 'A001' id, 1 seq
阅读全文
摘要:-- 声明游标;CURSOR cursor_name IS select_statement --For 循环游标 --(1)定义游标 --(2)定义游标变量 --(3)使用for循环来使用这个游标 declare --类型定义 cursor c_job is select empno,ename,
阅读全文
摘要:1.如果存在更新,不存在插入 MERGE INTO merge_target target USING (SELECT B.name,B.age,B.target_id FROM merge_source B) source ON (target.id=source.target_id) WHEN
阅读全文
摘要:数据库添加DBLink后,很容易出现一个问题:ORA-02049:超时:分布式事务处理等待锁ORA-02063:紧接着line(起自ODS_LINK) 问题原因分析:第一次执行操作后出错,数据库没有提交或回退,未关闭原有数据库窗口,重新打开新窗口执行数据插入操作,报ORA-02049错误。解决办法:
阅读全文
摘要:1.获取日期元素 注意: 1).hh24写法指24小时,Oracle默认是12小时 2).分钟用mi,不要用mm,因为与之前的MM冲突 1-12小时写法 yyyyMMdd24miss(Oracle默认) 1-24小时写法 yyyyMMddHH24miss 获取日期元素: select to_char
阅读全文
摘要:--1.修改列名 alter table 表名 rename column 旧列名 to 新列名; --实例 alter table xsb rename column xh to 学号; --2.修改列类型 alter table 表名 modify (列名 varchar(256)); --实例
阅读全文
摘要:1.in参数:用于接收参数,在子程序内部,不能进行修改。当参数没有写模式的时候,默认的参数模式:in。例如:v_b number,其没有声明 in、out、in out,所以默认为in,in参数,则v_b 不能在子程序内部修改值。 2.out参数:out参数,输出模式的参数,用于输出值,会忽略传入的
阅读全文
摘要:一、前言oracle 创建表时,表名称会自动转换成大写,oracle 对表名称的大小写不敏感。 oracle 表命名规则: 1、必须以字母开头 2、长度不能超过30个字符 3、避免使用 Oracle 的关键字 4、只能使用A-Z、a-z、0-9、_#S 二、语法2.1 创建表 create tabl
阅读全文
摘要:1.基础概念: 在Oracle中,any()表示括号内任何一个条件,只要有一个满足即可;而all()表示所有的条件都满足才可以。 2.代码演示: 1).all用法 --大于最大值 select * from A where id >= all(select id from A) --这相当于 sel
阅读全文
摘要:1.in参数:用于接收参数,在子程序内部,不能进行修改。当参数没有写模式的时候,默认的参数模式:in。例如:v_b number,其没有声明 in、out、in out,所以默认为in,in参数,则v_b 不能再在子程序内部修改值。 2.out参数:out参数,输出模式的参数,用于输出值,会忽略传入
阅读全文
摘要:触发器分类:DML触发器、DDL触发器、Databse触发器、instead of 替代触发器(参考2有详解) 作用: 保护数据的安全,监视对数据的各种操作,如'日志记录': 对重要表的 '修改' 进行记录 例如:当员工信息插入后,自动输出“插入成功”的信息。 create or replace t
阅读全文
摘要:创建索引一般分为在线索引和非在线索引,在线与非在线的区别:非在线锁表,优先创建索引,此时DML都被阻塞,所以快;相反,在线锁的是行而非表,通过临时表进行索引的创建,所以不会影响DML操作,但副作用就是慢。如果在生产环境操作,不停服务的话,势必导致创建索引期间仍有DML操作进来。另外如果是大表,那么采
阅读全文
摘要:database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。 Create database link: create public database link testDblink connect to dbName identi
阅读全文
摘要:(1). 首先创建一个存储过程,即需要定时执行的任务内容 create or replace procedure 存储过程名 as begin 执行内容; commit; end; 例定时修改某个表信息: create or replace procedure AUTO_MODIFY_GI as b
阅读全文
摘要:一、需求说明 目前需要开发的Oracle数据库中有些表记录的内容是中文的,需要按照中文的方式进行排序。 二、分析思路 如果查询的结果字符集为ZHS16GBK/ZH16GBK,则使用order by默认是按照汉字的拼音顺序进行排序的;否则为其他(如UTF8等字符集),那么汉字的排序是按照BINARY(
阅读全文