
Oracle数据库
文章平均质量分 57
ALIn_Young
点滴的积累。。。
展开
-
存储函数
1.基本格式CREATE [OR REPLACE] FUNCTION function_name (arg1 [ { IN | OUT | IN OUT }] type1 [DEFAULT value1], [arg2 [ { IN | OUT | IN OUT }] type2 [DEFAULT value1]], …… [argn [ { IN | OUT | IN OUT }]原创 2015-10-27 11:27:00 · 311 阅读 · 0 评论 -
数据库中执行sql文件
方法一:可以在工具中执行,如PL/sql工具中(适用于文件较小)文件-->打开sql文件方法二:利用 sqlplus 登录数据库之后 键入: @文件名 全路径 即可执行*.sql 文件 例 假设有一个 test.sql 文件 所在路径是/home/oracle/ 现在要执行它 1 登录数据库原创 2015-12-25 13:56:35 · 1286 阅读 · 0 评论 -
利用rowid分块实现非分区表的并行update与delete
大表中海量历史数据的更新与删除一直是令DBA非常头痛的事情,在表已经分区的前提下我们还可以利用并行或者truncate parition等手段来为UPDATE或者DELETE提速, 但是如果对象是普通的非分区对表(non-partitioned heap table)的话,似乎就没有太好的加速方法了, nologging或parallel 对非分区表都没有效果。 之前我也有介绍过一转载 2016-01-13 14:23:31 · 1515 阅读 · 0 评论 -
分析oracle索引空间使用情况,以及索引是否需要重建
分析索引空间使用情况,以及索引是否需要重建分析其他用户下的索引需要 analyze any的权限分析索引前先查看表的大小和索引的大小,如果索引大小和表大小一样大或者大于表的大小,那么可以判断索引可能有问题,需要分析索引查询对象大小:select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments ord转载 2016-03-16 14:30:50 · 293 阅读 · 0 评论 -
Oracle表与索引的分析及索引重建
1.分析表与索引(analyze 不会重建索引)analyze table tablename compute statistics 等同于 analyze table tablename compute statistics for table for all indexes for all columnsfor table 的统计信息存在于视图:user_tab转载 2016-03-16 14:31:48 · 296 阅读 · 0 评论 -
UNDO_RETENTION作用
在Oracle的Undo机制中,参数Undo_Retention扮演了“混淆者”的角色。论坛里面也有很多朋友对这个参数含义不是非常清楚。本篇我们就来讨论一下这个这个参数的含义和作用。 1、从Undo说起 Undo或者说rollback segment机制是Oracle早期奠定行业地位的核心技术之一。Undo机制的提出,源自于Oracle提出的“多版本一致读”特性。在Oracle中,转载 2016-03-07 11:45:51 · 21965 阅读 · 1 评论 -
SQL分页
/*sql分页pagenum 页数pagerecord 每页记录数*/--方法一:select * from (SELECT t.student_code, t.name, t.sex, t.identity, row_number() over (order by t.student_code asc) as sor原创 2016-03-07 17:08:01 · 279 阅读 · 0 评论 -
查看ORACLE中正在运行的存储过程 kill
查看ORACLE中正在运行的存储过程 killselect * from v$access o where o.OBJECT like 'XXWPF007%' --查找正在运行的对象,获取sidselect a.serial# from v$session a WHERE A.SID=sid --通过sid 获取serial#alter system kill sessi转载 2016-03-04 16:27:03 · 2393 阅读 · 0 评论 -
oracle的分析函数over 及开窗函数
oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。转载 2016-04-21 11:35:49 · 249 阅读 · 0 评论 -
ORACLE SUM over分析函数
1.题目:表T如下: 要求转化为:和这样。SQL :select sum(money) over(order by id ) from t;select id, money-lag(money) over(order by id ) from t;原创 2016-04-21 11:37:14 · 571 阅读 · 0 评论 -
稠化报表然后行转列
with t as (select deptno, job, sum(sal) sum_sal from emp group by deptno, job),tt as (select distinct job from t),ttt as (select b.deptno, a.job, sum_sal from tt a left join t b partitio原创 2016-05-31 17:52:16 · 274 阅读 · 0 评论 -
已知每个部门有一个经理,统计输出部门名称、部门总人数、 总工资和部门经理。
--已知每个部门有一个经理,统计输出部门名称、部门总人数、--总工资和部门经理。--1.一个游标select deptno,count(*),sum(sal) from emp group by deptno;4个参数 v_deptname ,v_count,v_count_sal,v_dept_manager--2.set serveroutput ondeclare原创 2016-05-31 17:54:22 · 6230 阅读 · 0 评论 -
为雇员增加工资,从工资低的雇员开始,为每个人增加原工资的 10%,限定所增加的工资总额为 800 元,显示增加工资的人数和余额。
--为雇员增加工资,从工资低的雇员开始,为每个人增加原工资的 10%,限--定所增加的工资总额为 800 元,显示增加工资的人数和余额。--1.游标c_sal :select empno,ename,sal from emp order by sal;v_empno,v_sal 个人薪资,v_total:=800 涨薪总数,--v_add_sal 每个人的涨薪,v_count 人数原创 2016-05-31 18:34:27 · 2696 阅读 · 0 评论 -
按部门编号从小到大的顺序输出雇员名字、工资以及工资与平均工资的差。
--1.按部门编号从小到大的顺序输出雇员名字、工资以及工资与平均工资的差。--分析:1.需要两游标:c_dept :select deptno from dept order by deptno;--c_emp(p_deptno): select empno,sal from emp where deptno = p_deptno order by empno;--变量:v_deptn原创 2016-06-01 11:56:58 · 4800 阅读 · 0 评论 -
为所有雇员增加工资,工资在 1000 以内的增加 30%,工资在 1000~2000之间的增加 20%, 2000 以上的增加 10%。
--为所有雇员增加工资,工资在 1000 以内的增加 30%,工资在 1000~2000--之间的增加 20%, 2000 以上的增加 10%。--分析:if 迭代--游标:c_emp :select ename,sal from emp; 变量:v_empno,v_name,v_salset serveroutput on declare v_empno emp.empn原创 2016-06-01 14:43:36 · 4070 阅读 · 0 评论 -
oracle 10g 创建db_link
Oracle建立DB-LINK两台服务器。centos 6 安装oracle10G数据库两台服务器远程:IP:192.168.0.18,SID: usertest,用户名:usertest,密码:123456本地:IP: 192.168.8.90,SID: wjn,用户名:userwjn,密码:mosquito0参数设置转载 2015-12-25 10:49:41 · 516 阅读 · 0 评论 -
oracle数据库修改字符集
本人之前在进行数据迁移。由于疏忽,将数据库的字符集没有对应,导致数据导入之后。。。存储过程、函数中的汉字变成了乱码;同时 ,表当中的注释行业变成了乱码。。。。然后想补救一下。。。。修改oracle字符集。。。首先--查看Oracle数据库字符集:select userenv('language') from dual;查询结果:SIM原创 2015-12-24 16:49:39 · 410 阅读 · 0 评论 -
oracle如何查询和停止正在运行的job
找出正在执行的JOB编号及其会话编号 SELECT SID,JOB FROM DBA_JOBS_RUNNING; 停止该JOB的执行 SELECT SID,SERIAL# FROM V$SESSION WHERE SID='&SID'; ALTER SYSTEM KILL SESSION '&SID,&SERIAL'; EXEC DBMS_JOB.BROKEN(&JOB,T原创 2016-01-15 16:43:16 · 438 阅读 · 0 评论 -
dbms_job不能自动执行
定义了dbms_job,但是一直没执行。。。。解决方法:alter system set job_queue_processes = 10--原来的值是0。 参数说明:查看初始化参数job_queue_processes:SQL>show parameter job_queue_processes如果值为0(也是缺省值) 表示实例不启动协调作原创 2015-12-29 17:16:20 · 3750 阅读 · 0 评论 -
v$session_wait中参数
关V$session_wait中参数描述p1,p2,p3进行等待事件的分析v$session_wait视图的列代表的缓冲区忙等待事件如下: P1—与等待相关的数据文件的全部文件数量。 P2—P1中的数据文件的块数量。 P3—描述等待产生原因的代码。 例:select p1 "File #", p2 "Block #", p3 "Reason Code" from原创 2015-12-16 14:58:20 · 672 阅读 · 0 评论 -
JDBC连接各种数据库的方法
1)连接Oracle 8/8i/9i/10g/11g(thin模式)Class.forName("oracle.JDBC.driver.OracleDriver").newInstance();String url="JDBC:oracle:thin:@localhost:1521:orcl" //orcl为Oracle数据库的SIDString user="test";转载 2016-01-18 15:10:23 · 277 阅读 · 0 评论 -
ORACLE分区表、分区索引
ORACLE分区表、分区索引ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据就比较正常了,但是分区表并非乱建立,而其维护性也相对较为复杂一点,而索引的创建也是有点讲究的,这些以下尽量阐述详细即可。1、类型说转载 2016-01-18 18:23:15 · 289 阅读 · 0 评论 -
ORACLE CPU利用率高的解决方案
ORACLE CPU利用率高的解决方案1、 找到利用率高的进程号PID2、 查看利用率高的进程在干什么SQL>select sql_text,spid,v$session.program,process from v$sqlarea,v$session,v$process where v$sqlarea.address=v$session.sql_add转载 2015-12-16 14:51:15 · 403 阅读 · 0 评论 -
误将SELINUXTYPE看成SELINUX后,将其值改为disabled。导致操作系统服务启动
环境:Redhat 6.4数据库:ORACLE11g RAC在安装ORACLE 11g 之前需要关闭操作系统的防火墙和SELinux。1、关闭防火墙:iptables -F————————————清除防火墙策略service iptables stop———————关闭防火墙服务chkconfig iptables off—————— 禁止防火墙服原创 2015-12-02 10:13:30 · 1061 阅读 · 0 评论 -
oracle数据库出现ORA-27125: unable to create shared memory segment解决办法
在linux中的oracle数据库出现ORA-27125: unable to create shared memory segment解决办法。平台环境:Linux Red Hat Enterprise Linux Server release 6.0 (Santiago)数据库版本:Oracle Database 10g Enterprise Edition Release转载 2016-01-20 17:14:30 · 1490 阅读 · 0 评论 -
使用dbcd删除后重建实例
今天建库时选择了OMF方式,结果文件名称采用Oracle自动命名的方式,看不懂啊,于是乎决定删除再重建。Oracle提供了删除数据库的指令:drop database。需要数据库处于mount状态,然后alter system enable restricted session;,网上有帖子说还需要exclusive,由于我是VM装的,用户只有我一个,所以不用可以。由于当前处于open转载 2016-01-20 17:16:22 · 1948 阅读 · 0 评论 -
oracel 10G手工建库
1)建库前准备1.确保Oracle软件已经安装上2.设计数据库:确定数据库用途、类型、体系结构、数据库名3.必须是已授权SYSDBA的账户 //操作系统或者口令文件验证4.确保有足够的内存启动实例5.确保存储空间可以运行数据库2)建库1.配置环境变量$ vi .profile转载 2016-01-20 18:13:02 · 313 阅读 · 0 评论 -
Oracle中Union,Union All,Intersect,Minus
-- Union 是当存在重复记录行时,只取一行(也就是说重复记录行只显示一条),同时进行默认规则的排序;-- Union all 是不管你有没有重复,都显示出来,不进行排序;-- Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;-- Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。原创 2016-01-06 16:38:06 · 214 阅读 · 0 评论 -
数据泵导出/导入Expdp/impdp
数据泵导出/导入Expdp/impdp 注意:数据泵文件与传统的EXP/IMP数据转储文件是不兼容的。之前是用exp 导出的文件。。。。。好几十G,导入的时候好慢,好慢。。。一、以下是DATA PUMP的几个优点介绍:1.数据泵(DataPump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在转载 2015-12-23 13:13:06 · 1269 阅读 · 0 评论 -
关于oracle 导入导出
根据需求,将一数据库导出用exp 命令导出。。数据量比较大(dmp都50G左右),数据量达到八九千万行。。。(导出来就后悔了,早知道就用数据泵了。。。。)导出命令exp username/passwd@orcl file=/test owner= test;之后搭建新的数据库环境.注意:新搭建的环境实例名(sid),用户、表空间名,要保持一致。。。。否则会出错原创 2015-12-23 14:20:20 · 327 阅读 · 0 评论 -
关于数据库session连接数目问题
第一次:一开始只是通过admin/数据库名/pfile/init.ora.018201210520下的process = 150 然后修改成了500,重启数据库,本认为万事大吉了,大约过了几个小时客户来电话,说不行了,再次连接不上数据库了。第二次:然后又继续想问题的所在,对于数据库的进程数超过最大值,只有资源打开之后,没有及时的关闭,或者说资源打开之后不正常的关闭界面造成数据库中的proc转载 2015-12-07 17:22:22 · 1557 阅读 · 0 评论 -
ORACLE 表压缩
Oracle支持在表空间(tablespace)、数据表(table)和分区(Partition)级别的压缩,如果设置为表空间级别,那么默认将该表空间中的全部的表都进行压缩。压缩操作可以在数据单条插入、数据修改和数据批量导入时发生。一、 压缩类型Oracle支持下面几种表压缩方式:其中,OLTP压缩可以在数据单条插入、数据修改、数据批量导入的时候进行压缩,其它三种只能在批量导入的时转载 2016-07-08 17:04:13 · 8307 阅读 · 0 评论