
Oracle
文章平均质量分 65
Rosanu
你开心,我快乐!
展开
-
oracle集群(RAC)和主备数据同步(DataGuard)思路
Oracle主备库数据同步使用DataGuard。Data Guard 是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目录存储结构,以及数据的同步(其实也不是实时同步的),这两套系统之间只要网络是通的就可以了,是一种异地容灾的解决方案。而对于RAC,则是本地的高可用集群原创 2017-03-29 21:06:01 · 14145 阅读 · 1 评论 -
Oracle 异常处理 raise_application_error sqlcode sqlerrm
1、RAISE_APPLICATION_ERROR:用来测试的异常处理;DBMS_STANDARD包的RAISE_APPLICATION_ERROR过程,可以重新定义异常错误消息,它为应用程序提供了一种与ORACLE交互的方法。语法如下RAISE_APPLICATION_ERROR(errorNumber,errorString)errorNumber是数值在-20000到-20999转载 2013-03-21 10:45:18 · 5740 阅读 · 0 评论 -
Oracle 常用的三种循环 Loop
DECLARE I NUMBER := 1;BEGIN --1、for循环 FOR I IN REVERSE 1 .. 10 LOOP --reverse 可控制倒序循环,从10开始,10、9、8 ... DBMS_OUTPUT.PUT_LINE(TO_CHAR(SYSDATE, 'mi:ss')); DBMS_OUTPUT.PUT_LINE(I); E原创 2013-03-21 10:46:42 · 2213 阅读 · 0 评论 -
Oracle带输入、输出参数的存储过程 返回受影响的行数 SQL%ROWCOUNT
CREATE OR REPLACE PROCEDURE PROC_UPDATE_TEMP(P_DAYS IN NUMBER, --执行天数 P_ROWS OUT VARCHAR2, --返回受影响的行数原创 2013-03-20 22:36:09 · 3312 阅读 · 0 评论 -
Oracle 存储过程实现分页
--1、首先建立一个包,用户创建一个游标类型CREATE OR REPLACE PACKAGE PKG_QUERY AS TYPE CUR_QUERY IS REF CURSOR;END PKG_QUERY;--2、创建存储过程CREATE OR REPLACE PROCEDURE PRC_QUERY(P_TABLENAME IN VARCHAR2, --表名P_ST转载 2013-03-13 21:54:34 · 1112 阅读 · 0 评论 -
Oracle编写带数组参数的存储过程
--功能:采用存储过程、type组合来实现批量操作,以节省系统开销,提高效率。 --创建 Type bodies CREATE OR REPLACE TYPE TYPE_ARRAY AS OBJECT ( ID NUMBER(10), REMARK VARCHAR2(10) ) --创建 Types CREATE OR原创 2013-03-06 22:06:30 · 2023 阅读 · 0 评论 -
DBMS_LOCK包的学习
学习一下DBMS_LOCK包的用法。这份材料的说明和举例都很详细了,好不容易才找到的,哈哈。General InformationSource{ORACLE_HOME}/rdbms/admin/dbmslock.sqlFirst Available7.3.4ConstantsNameDescription转载 2012-12-16 20:43:43 · 1350 阅读 · 0 评论 -
使用DBMS_LOCK控制程序并发
在调用并发的程序时,假设两个人同时提交了某一个并发请求,并且传入了同样的参数,假设在程序中使用了对状态的控制,例如两个UPDATE语句在修改同一条记录时,第一个UPDATE语句修改后长时间未提交,第二个UPDATE语句修改了同一条记录,并提交,这时就两个UPDATE语句就起冲突了。也可以使用另外一种方法,使用lock,将提交的并发锁住,其他提交的只能排队。-- lockl_locknam原创 2012-11-30 23:52:09 · 1638 阅读 · 0 评论 -
With temp as —— SQL 中With as 的用法
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可转载 2012-12-12 22:49:59 · 24446 阅读 · 0 评论 -
海量数据处理分析
海量数据处理分析 北京迈思奇科技有限公司 戴子良 笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量转载 2012-12-02 02:53:21 · 684 阅读 · 0 评论 -
收集oracle统计信息
优化器统计范围:表统计; --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;列统计; --列中唯一值的数量(NDV),NULL值的数量,数据分布; --DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM;索引统计;--叶块数量,等级,聚簇因子;转载 2012-12-02 02:29:11 · 654 阅读 · 0 评论 -
Oracle 收集统计值 收集统计信息
--收集Oracle统计信息BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'OWNER_NAME', --数据库用户名 TABNAME => 'TABLE_NAME', --表名原创 2012-12-02 02:15:45 · 1244 阅读 · 0 评论 -
oracle 数据格式化
在写Oracle的时候,经常做一些日期,字符串或者数字的格式化: 格式化函数函数返回类型描述例子to_char(timestamp, text)text把时间戳转换成字串to_char(current_timestamp, 'HH12:MI:SS')to_char(interval, text)te转载 2012-12-01 03:08:23 · 752 阅读 · 0 评论 -
ORACLE Jobs Programs Schedulers的配置和管理
所谓出于job而胜于job,说的就是Oracle 10g后的新特性Scheduler啦。在10g环境中,ORACLE建议使用Scheduler替换普通的job,来管理任务的执行。其实,将Scheduler描述成管理job的工具已经太过片面了,10G版本中新增的Scheduler绝不仅仅是创建任务这么简单。。。。提示:ORACLE中管理Scheduler是通过DBMS_SCHEDULER转载 2012-11-28 23:18:06 · 1589 阅读 · 0 评论 -
高水位(High Water Mark)的概念及高水位问题的解决
说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理.我们知道,ORACLE在逻辑存储上分4个粒度:表空间,段,区和块.(1)块:是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是说当ORACLE从数据文件读数据时,是读取多少个块,而不是多少行.(2)区:由一系列相邻的块而组成,这也是ORACLE空间分配的基本单位,举个转载 2013-04-04 15:11:06 · 1788 阅读 · 0 评论 -
dul恢复truncate表测试
链接:http://www.xifenfei.com/4133.html标题:dul恢复truncate表测试作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]dul 恢复truncate 测试准备dul测试SQL> selectcount(*) fromt_xifenfei;COUNT(*)转载 2013-04-04 15:14:38 · 1053 阅读 · 0 评论 -
查看索引状态
--查看索引状态select t.status, t.partitioned, t.* from dba_indexes t where t.index_name='IDX_NAME';select t.status, t.partitioned, t.* from user_indexes t where t.index_name='IDX_NAME';select t.partition原创 2013-04-06 21:39:36 · 1117 阅读 · 0 评论 -
Oracle按F8运行后弹出变量输入对话框
-- 变量 运行后弹出变量输入对话框SELECT 1.2 * &体重 / (&身高 * &身高) + 0.23 * &年龄 - 5.4 - 10.8 * &性别 as 体脂率 FROM dual原创 2017-03-21 16:00:45 · 3701 阅读 · 0 评论 -
DISTINCT和GROUP BY的区别
其实二者没有什么可比性,但是对于不包含聚集函数的GROUP BY操作来说,和DISTINCT操作是等价的。不过虽然二者的结果是一样的,但是二者的执行计划并不相同。在Oracle9i中:SQL> SELECT * FROM V$VERSION;BANNER-------------------------------------------------转载 2015-03-09 18:24:45 · 667 阅读 · 0 评论 -
Oracle一个中文汉字占用几个字节
Oracle一个中文汉字占用几个字节,要根据Oracle中字符集编码决定。 --查看oracle server端字符集select userenv('language') from dual;--如果显示如下,一个汉字占用两个字节--SIMPLIFIED CHINESE_CHINA.ZHS16GBK --如果显示如下,一个汉字占用三个字节--SIMPLIFIED CHINE原创 2013-10-26 14:30:30 · 1450 阅读 · 0 评论 -
Oralce 表操作常用SQL
-- Create tablecreate table table_name( id VARCHAR2(50), create_time TIMESTAMP(6), column_name NUMBER(10,2));--给表table_name 添加列column_name,并设置默认值为0ALTER原创 2013-04-08 20:52:22 · 1125 阅读 · 0 评论 -
Oracle中动态SQL详解
1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输转载 2013-07-19 20:13:54 · 1061 阅读 · 0 评论 -
树结构和它的专用函数SYS_CONNECT_BY_PATH
简单的树型结构关于树的普通应用学习了下这个函数, 用ORGINDUSTRIES的表做了个测试:正常的树型结构select lpad(' ',6*(level-1))||industry,indlevel,indid,pindidfrom ORGINDUSTRIESstart with indid=1connect by pindid=prior indid结果显示如转载 2013-07-03 22:37:30 · 1404 阅读 · 0 评论 -
Oracle实现树查询:select ... start with ... connect by prior
Oracle树查询的最重要的就是select...start with... connect by ...prior语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。以我做过的一个项目中的表为例,表结构如下:CRE转载 2013-07-03 22:30:04 · 1172 阅读 · 0 评论 -
Oracle 物化视图
一. 物化视图概述Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物转载 2013-06-06 15:21:09 · 1406 阅读 · 0 评论 -
Oracle 常用函数
Oracle 常用函数DECLARE V_TODAY DATE := SYSDATE;--2013/4/21 12:22:26 V_NUM VARCHAR(100) := '12';BEGIN --EXTRACT:从日期(V_Today)中提取天数(Day) SELECT TO_NUMBER(EXTRACT(DAY FROM V_TODAY)) INTO V_NUM FR原创 2013-04-21 14:21:15 · 880 阅读 · 0 评论 -
SQL语言:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)
SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)。1、常用的DDL语句:CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CRE原创 2013-04-14 15:34:26 · 8242 阅读 · 0 评论 -
DBMS_SCHEDULER 的使用
1.通过DBMS_SCHEDULER.CREATE_JOB直接创建jobCREATE TABLE T_ROSANU( R_ID VARCHAR2(10), R_DATE TIMESTAMP(6));--表已创建。BEGIN DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'job_create_rosanu',原创 2013-04-04 14:57:30 · 1461 阅读 · 0 评论 -
Oralce Job 创建
--运行Scheduler jobBEGIN dbms_scheduler.run_job('JOB_03');END ;--停止Scheduler JobBEGIN dbms_scheduler.stop_job('JOB_03');END ;--查询Scheduler JobSELECT * FROM User_Scheduler_Jobs;--查询JobSELECT原创 2012-11-30 23:43:29 · 784 阅读 · 0 评论 -
Oracle 自治事务 pragma autonomous_transaction
自治事务是一个独立于主程序的事务,它不会对主事务的控制产生影响。非自治事务中的COMMIT,ROLLBACK是会影响整个事务的。CREATE TABLE T_ERROR_LOG(ID VARCHAR(50), ERROR_LOG VARCHAR(50)); -- 自治事务(独立事务) CREATE OR REPLACE PROCEDURE PROC_AUTONOMOUS_ERRO原创 2013-03-23 16:27:43 · 1181 阅读 · 0 评论 -
DBMS_STATS.GATHER_TABLE_STATS详解 Oracle统计值
DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数、数据块数、行长等信息;列的分析--列值的重复数、列上的空值、数据在列上的分布情况;索引的分析-索引页块的数量、索引的深度、索引聚合因子). DBMS_转载 2012-11-14 19:55:40 · 2346 阅读 · 0 评论 -
oracle 锁查询 select加锁方法
--一、oracle对select加锁方法create table t_test(a number,b number);INSERT INTO t_test VALUES (1, 2);INSERT INTO t_test VALUES (3, 4);INSERT INTO t_test VALUES (5, 6);COMMIT;---session 1 模拟选中一个号码原创 2012-11-28 23:13:54 · 1372 阅读 · 0 评论 -
ora_hash
一、ora_hash格式:ora_hash('strings', N, 0 ) strings: 输入值 N:最大hash bucket的值 0:起始hash bucket值,缺省是1dbms_utility.get_hash_value(‘strings', min, max) strings:输入值 min:hash bucke转载 2012-04-13 10:44:18 · 6880 阅读 · 0 评论 -
Q-quote表达式
Q-quote表达式(转义符):q'' select q'[where a='b']' from dual; select q'' from dual; select 'where a=''b''' from dual;原创 2012-04-10 15:09:46 · 939 阅读 · 0 评论 -
Oracle 多行转一行,一行转多行
select id, vnum, to_char(wmsys.wm_concat(vname)) c from tab_test group by id,vnum;with a as (select '/ABC/AA/AD/ABD/JI/CC/ALSKD/ALDKDJ' id from dual)select regexp_substr(id,'[^/]+',1,ro原创 2011-10-28 17:19:55 · 2236 阅读 · 0 评论 -
Oracle中job的使用详解
我们在项目开发中,常常会有一些复杂的业务逻辑。使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执行效率和稳定性。定时执行存储过程,就要用到job。以下是常用的参数说明:字段(列) 类型 描述 JOB转载 2012-03-12 14:02:36 · 607 阅读 · 0 评论 -
Oracle 分区表 总结
一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查转载 2012-03-02 14:13:55 · 704 阅读 · 0 评论 -
Oracle游标执行流程
转载 2012-03-01 17:16:40 · 1090 阅读 · 0 评论 -
查询某一条记录的前一条记录和后一条记录
select t.*, t.rowid from table1 t;select t.*, t.rowid from table1 t where t.rowid>(select rowid from table1 where id='1') and rownum=1;--id='1'的后一条记录select * from (select t.*,rownum num fr原创 2011-12-02 18:20:36 · 1168 阅读 · 1 评论 -
Oracle中的批处理,using
1. 静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定转载 2011-11-08 21:03:37 · 720 阅读 · 0 评论