Oracle
宣晨光
向往架构师,专注于Spring cloud微服务治理;对前端、Linux、数据库、容器化、人工智能、区块链等都有涉及。
展开
-
Oracle知识点
select语句可以用START WITH…CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select ... from <TableName> where <Conditional-1> start with <Conditional-2> connect by <Conditional-3>;1:过滤原创 2016-02-18 11:11:00 · 222 阅读 · 0 评论 -
利用存储过程分步删除数据
create or replace procedure proc_del_data( p_TableName in varchar2, p_Condition in varchar2, p_Count in varchar2 ) as pragma autonomous_transaction; n_delete原创 2016-05-16 15:20:45 · 272 阅读 · 0 评论 -
Eg.Sql
eg.1 实现 ‘1-2,4-9,14-30’ 转换成 ‘1,2,4,5,6,7,8,9,14,15,16’WITH A AS (SELECT '1-2,4-9,14-30' T FROM DUAL),B AS (SELECT REGEXP_SUBSTR(T, '[^,]+', 1, LEVEL) T2 FROM A CONNECT BY LEVEL <= LENGTH(原创 2016-12-09 15:37:10 · 234 阅读 · 0 评论 -
Oracle关于rollup与cube分组函数使用
–1.rollup 对分组求和1.初始化实验坏境 1)创建测试表group_testcreate table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);`Table created.2)初始化数据insert into group_test values (10,'Coding', '转载 2017-01-15 22:02:40 · 323 阅读 · 0 评论 -
Oracle数据库初始化配置语句
1.创建数据表空间CREATE TABLESPACE "MSGC" DATAFILE '/u02/oradata/msgc.dbf' SIZE 21474836480 AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL原创 2017-01-03 15:32:41 · 4639 阅读 · 0 评论 -
Oracle关于归档日志处理
两种方法: 1、配置RMAN自动管理ARCHIVELOG。也可在RMAN中将数据备份到磁带上,然后将过期的ARCHIVELOG删除; 2、可以手工来处理,步骤如下 1)将/oracle下的相关ARCHIVELOG日志文件移到别的文件系统下(保留一段时间的ARCHIVELOG日志即可,其他的可移走,用系统命令mv移走)。然后打包、压缩,备份到介质上,此时可将这些移出的文件删除。注意:别在原来转载 2017-01-16 13:28:41 · 969 阅读 · 0 评论 -
oracle文件操作
–此处由linux服务器下 1.授权创建目录的权限Grant create any directory to username;2.创建目录create or replace directory op_file as '/u01/app/';3.读写对应目录权限GRANT WRITE,READ ON DIRECTORY ORADIR TO username;4.授权给用户使用utl_file包的原创 2017-02-08 11:13:46 · 334 阅读 · 0 评论 -
oracle index rebuild online
object_id 由错误ora-08104 问题引发DECLARE RetVal BOOLEAN; OBJECT_ID BINARY_INTEGER; WAIT_FOR_LOCK BINARY_INTEGER; BEGIN OBJECT_ID := 67420; WAIT_FOR_LOCK := NULL; RetVal := SYS.DBMS_REPAIR.ONL原创 2017-02-18 18:55:54 · 281 阅读 · 0 评论 -
用rman进行恢复数据,出现RMAN-03009,RMAN-11003,ORA-01991错误
C:\Documents and Settings\mzl>sqlplus "/as sysdba"SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 2月 16 13:13:24 2008Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.连接到:Oracle9i E转载 2017-03-01 15:55:29 · 6321 阅读 · 0 评论 -
Oracle杂记
1.调试存储过程:ORA-0131 Insufficient privileges 处理; 缺失 DEBUG CONNECT SESSION 系统权限所致。 以sys登录grant DEBUG CONNECT SESSION to user_name;2.创建Database_link连接-- Drop existing database link drop原创 2016-03-01 10:44:54 · 350 阅读 · 0 评论 -
Oracle 高级查询
grouping GROUPING 记录是对哪个字段进行统计,其值只能是 0、1 Group(column) =0 表示此字段参与了分组统计 =1表示字段未参与分组统计rollup 首先是进行无字段的聚合,然后在对字段进行从左到右依次组合后聚合select deptno,job,sum(sal) from emp group by rollup( deptno,job);等价于se原创 2017-02-20 17:28:49 · 383 阅读 · 0 评论 -
DML
1.将一个表数据按条件插入多表中;INSERT ALLWHEN ID <4 THEN INTO T_USER (ID,USERNAME,PASSWORD)WHEN ID >5 AND ID <=7 THEN INTO TB_USER (ID,USERNAME,PASSWORD)SELECT ID ,UNAME,PASSWORD FROM USERS;2.利用select查询结果更新数据U原创 2016-04-12 11:25:58 · 510 阅读 · 0 评论 -
Oracle的添加主键
select 'update ' || tname || ' set uuid =sys_guid() where uuid is null;', 'alter table ' || tname || ' modify uuid VARCHAR2(64) not null;', ' alter table ' || tname || ' add constraint P原创 2016-03-25 15:20:54 · 373 阅读 · 0 评论 -
Oracle level
1、当需要把一个字符串按某一分隔符分隔后,变为数据列,即把字符串行变为列,可以使用level关键字,例子:with t as (select 'a;b;c;d;e' as str from dual)select level, t.str, substr(t.str, 2 * (level - 1) + 1, 1) as str_signle from t connect by le原创 2016-02-18 11:30:31 · 629 阅读 · 0 评论 -
Oracle 行转列
注意内部查询结果唯一SELECT AA.COLUMN_VALUE FROM TABLE(SELECT SPLIT(U.ORGCODE) FROM T_MIS_USER U where uuid = '007DF95AFB675D3CE050007F01001828') aa原创 2016-02-18 16:47:35 · 444 阅读 · 0 评论 -
oracle 锁表
1. select p.spid, c.object_name, b.session_id, b.oracle_username, b.os_user_name from v$process p, v$session a, v$locked_object b, all_objects c where p.addr = a.p原创 2016-02-18 14:31:03 · 237 阅读 · 0 评论 -
全表更新
1.declare type rowid_list is table of urowid index by binary_integer; rowid_infosrowid_list; i number; cursor c_rowids is select rowid from t_target; begin open c_rowids;原创 2016-02-22 11:18:54 · 455 阅读 · 0 评论 -
数据还原指定日期
1.查询出相关时间点 select * from sys.smon_scn_time order by time_dp desc; –system用户 2、某个时间点的数据恢复 insert into 表名 select * from 表名 as of scn 需要恢复的时间点直接更新 delete from table_name ; -- 全表删除 insert in原创 2016-02-25 10:59:53 · 345 阅读 · 0 评论 -
大数据量使用总结
1.利用partitionpartition by range(field)( partition P1 values less than ('v1'), --由字段类型决定引号 partition P2 values less than ('v2'), partition pmax values less than (MAXVALUE) -- 关键字);selec原创 2016-02-25 10:39:19 · 260 阅读 · 0 评论 -
Synonym
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系1.创建同义词语句:create public synonym table_name(重命名)for user.table_name;创建一个远程的数据库上的某张表的同义词 创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词: creat原创 2016-02-25 12:04:07 · 2598 阅读 · 0 评论 -
Oracle regexp_substr函数
function REGEXP_SUBSTR (String, pattern, position, occurrence, modifier)String:需要进行正则处理的字符串 pattern:进行匹配的正则表达式 position:起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence:标识第几个匹配组,默认为1 modifier:是取值范围原创 2016-02-18 12:00:33 · 447 阅读 · 0 评论 -
Oracle正则表达式
Oracle使用正则表达式离不开这4个函数:1。regexp_like 2。regexp_substr3。regexp_instr4。regexp_replaceregexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单:regexp_like_conditionregexp_substr 函数,和 substr 类似,用于拾取合符正则表达式描述的字符子原创 2016-02-26 16:07:43 · 406 阅读 · 0 评论 -
连表更新、查询
MERGE INTO t_pcxm bUSING t_pici aON (a.uuid = b.pcid and a.msdate is not null)WHEN MATCHED THEN UPDATE SET b.msdate = '2016-02-23 10:54:51'原创 2016-02-28 19:55:41 · 328 阅读 · 0 评论 -
Oracle汉字转化英文
---------------------------------------------- Export file for user ZP10086 ---- Created by dahai on 2010-7-30, 9:39:47 ----------------------------------------------spool ss.logpromptpro转载 2017-02-22 10:11:48 · 2398 阅读 · 0 评论