Oracle 学习之路
记录自己在Oracle学习过程中的经验和收获
少年民仔
青春是用来拼搏的,不是用来挥霍的!
展开
-
Oracle 索引学习
创建索引标准语法create index 索引名 on 表名(列名) tablespace 表空间名唯一索引create unique index 索引名 on 表名(列名) tablespace 表空间名组合索引create index 索引名 on 表名(列名1,列名2) tablespace 表空间名反向键索引create index 索引名 on 表名(列名) reverse tablesp原创 2017-07-17 16:42:51 · 696 阅读 · 0 评论 -
Sqlplus 连接远程服务器
命令sqlplus user/password@ip[:port]/service_name[as sysdba]示例sqlplus sys/pwd@192.168.1.1:1521/test注意:使用默认端口1521时,可省略端口输入原创 2017-07-17 16:43:35 · 8181 阅读 · 0 评论 -
Oracle分析函数lead和lag学习
lead()解释取出某一字段后N条记录的值 lead(stuname, 1) 表示取后一条记录的stuname的值语法lead(field,offset,defval)field:字段 offset:偏移量 defval:默认值lag()解释取出某一字段前N条记录的值 lag(stuname, 1) 表示取前一条记录的stuname的值语法lag(field,offset,defval)fi原创 2017-06-20 11:41:53 · 1255 阅读 · 0 评论 -
Oracle merge into 学习
用途将A表的数据输出到B表中,根据条件判断B表中是否有数据,有则更新,没有则插入语法merge into table1 alias1 using table2 alias2 on (condition)when matched then update set col1=col2when not matched then insert (col1) values (原创 2017-06-16 17:26:05 · 863 阅读 · 0 评论 -
Oracle over函数和rank函数学习
什么是over函数?over函数简单说就是给Oracle的分析函数加条件,而比较常见的就是结合sum(),rank()函数使用sum() overselect empno, ename, deptno, sal, sum(sal) over (partition by deptno) as depsal from scott.emp;结果如图: 这句sql中,我们根据部门编号对部门进行了分区,原创 2017-05-19 17:51:28 · 2972 阅读 · 0 评论 -
Oracle 多行数据合并成一行
方案一:wm_concat函数select username, id, wmsys.wm_concat(subject) as subject, wmsys.wm_concat(score) as scorefrom STUDENTSCORESgroup by username, id方案二:listagg函数select username, id, LISTAGG(subject, '-')原创 2017-05-19 17:53:40 · 37732 阅读 · 1 评论 -
Oracle错误——ORA-03113:通信通道的文件结尾 解决办法
原文地址:http://blog.csdn.net/zwk626542417/article/details/39667999对原文中的一些修正:1,alter system set db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G 2,RMAN>crosscheck archivelog all; --运转载 2017-05-12 10:45:48 · 18889 阅读 · 0 评论 -
Oracle 单字段拆分成多行
方法一SELECT DISTINCT STUID, REGEXP_SUBSTR (STUNAME, '[^,]+', 1, LEVEL) STUNAME, STUSEXFROM T_STU CONNECT BY LEVEL <= LENGTH (STUNAME) - LENGTH (REPLACE(STUNAME, ',', '')) + 1ORDER BY原创 2017-05-08 21:01:41 · 29742 阅读 · 11 评论 -
Oracle decode函数学习
基本语法语法一decode(条件,值1,返回值1,值2,返回值2,...,值n,返回值n)解释如果条件=值1,则结果为返回值1, 如果条件=值2,则结果为返回值2, 。。。 如果条件=值n,则结果为返回值n语法二decode(字段或字段的运算,值1,值2,值3)解释当字段或字段运算的值等于值1时,函数返回值为值2,否则为值3 这里的值1,值2,值3也可以是表达式使用场景比较大小select原创 2017-05-06 17:57:08 · 898 阅读 · 0 评论 -
PL/SQL 存储过程学习
PL/SQL 存储过程学习基本语法语法:CREATEOR REPLACE PROCEDURE 存储过程名 ISBEGIN NULL;END;解释: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个存储过程, 如果存在就覆盖它IS关键词表明后面将跟随一个PL/SQL体BEGIN关键词表明PL/SQL体的开始NULL P原创 2017-04-17 19:45:49 · 1244 阅读 · 0 评论 -
PL/SQL 基本语法
PL/SQL介绍PL/SQL是Oracle对标准数据库语言SQL的过程化扩充,它将数据库技术和过程化程序设计语言联系起来,是一种应用开发语言,可使用循环,分支处理数据,将SQL的数据操纵功能与过程化语言数据处理功能结合起来。PL/SQL的使用,使SQL成为一种高级程序设计语言,支持高级语言的块操作,条件判断,循环语句,嵌套等,与数据库核心的数据类型集成,使SQL 的程序设计效率更高。PL/SQL作用原创 2017-04-06 17:33:31 · 12144 阅读 · 1 评论 -
Oracle 使用一条insert语句完成多表插入
语法一全表插入insert all into table1 values() into table2 values() select * from table执行过后,会将table中的所有数据分别插入table1和table2加条件插入insert all when condition1 then into table1 values() when condition2 then into tab原创 2017-04-06 09:22:30 · 9528 阅读 · 0 评论 -
Navicat连接Oracle数据库报错(ORA-28547)
错误原因:oci.dll版本不对(本地安装的是64位的Oracle,单Navicat仅支持32位的,因此需要32位的客户端)解决方案:下载32位客户端,配置金Navicat中下载地址: http://www.oracle.com/technetwork/topics/winsoft-085727.html1,下载文件,按照自己的oracle版本下载原创 2017-02-13 20:26:58 · 2635 阅读 · 0 评论 -
Oracle报错ORA-12560: TNS 协议适配器错误
网上搜的大部分解决方案:1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的databas原创 2017-02-28 18:50:27 · 2782 阅读 · 0 评论 -
java创建触发器失败(Missing IN or OUT parameter at index:: 1 )
触发器代码如下:create or replace trigger trigger_33zOtisNB5cZ_LMAhwtmDgbefore insert or update of STUNAMEon T_STU for each rowbeginif inserting theninsert into table_33zOtisNB5cZ_LMAhwtmDg values ('in原创 2017-03-11 09:49:22 · 11993 阅读 · 0 评论 -
查看Oracle是否归档和修改归档模式
查看oracle日志模式:archive log list修改oracle日志模式:1,关闭数据库:shutdown immediate;2,启动数据库实例到mount状态:startup mount;3,切换数据库日志模式: alter database archivelog;(设置数据库为归档日志模式) alter databas原创 2017-03-15 17:41:45 · 22749 阅读 · 0 评论 -
Oracle Logminer 简单使用
LogMiner简介Oracle从8i以后,支持LogMiner,可以分析在线,离线,本身数据库,其他数据库的日志文件主要用途1.跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。2.回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。3.优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式分析方式-无限制条件:分析所有原创 2017-03-23 16:18:27 · 527 阅读 · 0 评论 -
Oracle NVL,NVL2,COALESCE函数学习
Oracle NVL,NVL2,COALESCE函数学习NVL函数1.用法:nvl(value1,value2)2.解释:如果value1的值为null,则返回value2的值,如果value1的值不为null,则返回value1的值NVL2函数1.用法:nvl(value1,value2,value3)2.解释:如果value1的值为null,则返回value3的值,如果value1的值不为原创 2017-03-23 18:47:56 · 655 阅读 · 0 评论 -
Oracle 正则表达式函数学习
正则表达式中的元字符-n:匹配换行符-^:匹配字符串的开头位置 如果A是字符串的第一个字符,^A 匹配 A -$:匹配字符串的末尾位置 如果B是字符串的最后一个字符,$B 匹配 B-*:匹配前面的字符0次或多次 ba*rk可以匹配 brk、bark、baark等等-+:匹配前面的字符1次或多次 ba+rk可以匹配 bark、baark等等,但是不能匹配brk,也就是说,最少有一次-?: 匹原创 2017-03-23 19:28:41 · 559 阅读 · 0 评论 -
Oracle聚合函数学习
AVG(DISTINCT|ALL)1.解释:求平均值,all表示求所有值的平均值,DISTINCT只对不同的值求平均值 2.示例:select avg(score) from T_STU;select svg(DISTINCT score) from T_STU;MAX(DISTINCT|ALL)1.解释:求最大值,all表示求所有值的最大值,DISTINCT只对不同的值求最大值(结果一致)原创 2017-03-25 14:52:06 · 472 阅读 · 0 评论 -
Oracle GoldenGate介绍
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle Golden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、原创 2017-03-26 17:55:55 · 987 阅读 · 0 评论 -
Oracle GoldenGate Java Adapter 开发介绍
Oracle GoldenGate Java Adapter开发主要涉及到两个方面1.Oracle GoldenGate VAM消息捕获 2.java用户如何将捕获的Oracle数据变化的信息进行传送Oracle GoldenGate VAM消息捕获介绍Oracle GoldenGate VAM消息捕获通过连接到JMS传递来解析消息,并通过VAM接口将其发送到构建消息数据的Oracle Golde原创 2017-03-26 18:08:08 · 3157 阅读 · 0 评论 -
Oracle GoldenGate单向复制配置
GoldenGate配置数据DML同步需要的进程源数据库Manager进程:GoldenGate的控制进程,负责启动,监控和管理其他进程Extract进程:抽取进程,负责从源数据库中捕获修改的数据,然后保存为本地的tail文件Pump进程:传输进程,负责从本地tial文件中传输到目标数据库上目标数据库Manager进程:同样需要配置一个 Manager进程Replicat进程:应用进程,原创 2017-03-26 18:40:38 · 768 阅读 · 0 评论 -
Oracle 交集,差集,并集运算的学习
交集:intersect示例:select stuname from T_STU1intersectselect stuname from T_STU2 注意:Oracle不支持intersect all 关键字!差集:minus示例:select stuname from T_STU1minusselect stuname from T_STU2 注意:Oracle中差集的运算不同于sql原创 2017-03-29 13:51:53 · 1653 阅读 · 0 评论 -
Oracle 空值判断
NULL空值的概念数据库里有一个很重要的概念:空值即NULL有时表中某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在NULL空值判断1.空值不等同于字符串中的空格,也不是数字类型的0 2.判断某个字段值是否为空值时不能使用=,<> 这些判断符 3.必需有专用的短语:IS NULL 来选出有空值字段的记录,同理,可用 IS NOT NULL 选出不包含空值的记录示例SE原创 2017-03-29 13:53:16 · 15248 阅读 · 0 评论 -
Oracle 子查询学习
Oracle 子查询1.定义:子查询就是嵌套在主查询里的查询了 2.示例:找出所有工资比Den(FIRST_NAME)高的员工SELECT FIRST_LAME || ' ' || LAST_NAME FROM EMPLOYEES T0, EMPLOYEES T1 WHERE T0.SALARY > T1.SALARYAND T1.FIRST_NAME = 'Den'SELECT FIRS原创 2017-03-29 22:08:20 · 578 阅读 · 1 评论 -
PL/SQL 函数学习
语法CREATE [OR REPLACE] FUNCTION function_name [( parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS--the decla原创 2017-03-30 22:29:30 · 595 阅读 · 0 评论 -
Oracle 系统包——dbms_output学习
用途dbms_output包主要用于调试pl/sql程序,或者在sqlplus命令中显示信息,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种目的使用dbms_output包来显示一些信息知识点1.enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开) 2.disable:在serveroutput on的情况下,用来使dbms_out原创 2017-04-01 08:44:06 · 2619 阅读 · 0 评论