- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 remap_tablespace修改数据库表空间
首先,以schemas方式导出用户JCMS24的全部数据:expdp system/system directory=data_pump_dir dumpfile=test_user.dmp schemas=JCMS24说明:使用system导出是为了导出JCMS24 schema中的全部内容,包括用户创建和权限授予部分,使用用户本身导出则不包含这些内容。其次,drop用户及其全部对象
2015-12-29 10:54:05
7778
原创 SQL优化
d数据库系统性能调整SQL优化包括三个步骤1.通过查看系统中过去执行的历史可用信息,根据系统资源和应用程序确定高负载的SQL语句;2.根据AWR报告结合系统动态视图确定高负载的SQL;3.通过检查高负载SQL语句的执行计划,并提出优化方案。确定高负载的SQL高负载的SQL一般性能比较差,并且耗费系统中更多资源,可以通过下面的方法来确定1.SQL TRACE2.I
2015-12-24 15:00:53
440
原创 PGA资源的管理
PAG_AGGREGATE_RAEGET的使用情况,比如:PGA cache hit percentage 可以使用以下视图观察:监控PGA work area 的几个视图:v$sql_workarea_histogramv$pgastatv$sql_workarea_activev$sql_workareav$sql_tempseg_usage指定PGA wo
2015-12-24 14:50:34
414
原创 表空间的一些知识
1.创建表空间create tablespace xxx datafile 'd:\...\book.dbf'size 32M autoextend on next 10M maxsize 1000M;注:表空间一般放置位置D:\app\qianx\oradata\orcl2.设置默认表空间alter database default tablespace xxx;comm
2015-12-23 14:36:52
410
原创 oracle创建本月日历
with x1 as/*1、给定一个日期*/(select to_date('2015-07-01','yyyy-mm-dd') as cur_date from dual),x2 as/*2、取月初*/(select trunc(cur_date,'mm') as 月初, add_months(trunc(cur_date,'mm'),1) as 下
2015-09-17 15:05:02
696
原创 extract用法
与to_char一样,extract可以提取时间字段中的年月日时分秒。不同的是,extract的返回值确实number类型。create table test as select extract(year from systimestamp) as "year"from dual;desc test;可以发现返回的是number类型。区别:1.如上述2.extrac
2015-09-15 16:48:23
2230
原创 日期常用取值
select date, to_number(to_char(date,'hh24')) 时, to_number(to_char(date,'mi')) 分, to_number(to_char(date,'ss')) 秒, to_number(to_char(date,'dd')) 日,
2015-09-14 16:10:03
655
原创 查询oracle用户IP
创建触发器create trigger on_logon_triggerafter logon on databasebegin dbms_application_info,set_client_info | sys_contxt | ‘userenv’,'ip_address'));end;进行查询select client_info,machine fro
2015-09-14 11:15:30
1441
原创 oracle查询用户下每张表的信息
SELECT t1.Table_Name AS "表名称",t3.comments AS "表说明", t1.Column_Name AS "字段名称",t1.Data_Type AS "数据类型",t1.Data_Length AS "长度",t1.NullAble AS "是否为空",t2.Comments AS "字段说明",t1.Data_Default
2015-09-14 10:58:10
437
原创 查看oracle数据库的使用状态
查看每个session的CPU的占用情况;比较哪个session的CPU占用时间最多,然后查看该session的具体情况:下列找出当前session中最高的logical和Physical I/O比率:统计session中每个用户下cpu占用情况:
2015-09-14 10:48:50
738
原创 分析函数lead()over(),lag()over()
select no, name, hiredate, lead(hiredate) over(order by hiredate) lead_hd, hiredate, lag(hiredate) over(order by hiredate) lag_hdfrom tabname
2015-09-11 14:17:01
4561
原创 枚举法计算全年周内星期几的次数
with x0 as (select to_date('2015-01-01','yyyy-mm-dd') as 年初 from dual),x1 as(select 年初,add_months(年初,12) as 下年年 from x0),x2 as(select 年初,下年初,下年初-年初 as 天数 from x1),x3 as/*生成列表*/(select 年初
2015-09-11 14:10:19
859
原创 计算两个日期之间的工作天数
返回A,B两个员工聘用日期之间的工作天数create table test as select level as idfrom dualconnect by levelselect sum(case when to_char(min_hd+test.id-1,'DY','NLS_DATE_LANGUAGE=American') i
2015-09-11 13:47:05
515
原创 oracle简单小知识
1.约束constraint constraint_name check(codition)constraint constraint_name unique(column_name)constraint constraint_name foreign key (column_name)reference table_name(column_name)on de
2015-09-10 14:31:29
386
原创 计算百分比-比例函数ratio_to_report
select no as 部门, 工资合计, 总合计, round((工资合计/总合计)*100,2) as 工资比列from (select no,工资合计,sum(工资合计) over() as 总合计 from (select no,s
2015-09-10 13:58:46
2111
原创 取最大值最小值
分析函数select no, eno, max(name) keep(dense_rank first order by sal) over(partition by no) as 最小值, max(name) keep(dense_rank last order by sal) over(partition by no) as
2015-09-10 11:50:32
473
原创 关于函数row_number,rank,dense_rank排序
eg:返回排名前三的用户select no, sal, row_number() over(partition by mo order by sal desc) as row_number, rank() over(partition by mo order by sal desc) as rank, de
2015-09-10 11:16:02
761
原创 数据库系统的工作流程
step1:DBMS首先对数据查询语句进行语法检查,而后从数据字典中找到该用户对应的外模式,同时进行权限检查。若发现错误,则将错误信息返回给用户;step2:DBMS根据找到的外模式,利用概念模式/外模式映像,将其映像到概念模式,确定概念模式应该读入哪些数据;step3:DBMS利用内模式/概念模式映像,将概念模式映像到内模式,确定数据库应读入哪些物理记录及其具体的地址;step4:D
2015-09-09 15:04:21
1395
原创 计算累计差
思路:先将需要进行累积的值变成负值,再进行累加,即得到累计差with x as(select rownum as seq,a.*from (select 编号,项目,金额 from detail order by 编号) a)select 编号, 项目, 金额, sum(case when seq=1 then 金额
2015-09-09 14:45:51
2549
原创 oracle中with table as临时表
with table as 是用于创建临时表,它是用来创建临时表,主要是在进行查询的时候,做一个测试用个人感觉好处有如下几点:1.起到一个测试作用,不需要创建实体表;2.当你需要进行一个复杂的查询时,可以从中提取单表或者多表的一些公共内容,这样不会造成很大的查询语句;3.对一些数据量比较大的多项查询时,可以使用它先产生有一个中间结果,而它是可以被语句中的select语句使用,可以提
2015-09-09 14:17:45
3405
原创 根据表中的行创建一个分隔列表
比如name中的A,B,Coracle11.2的分析函数listaggselect cid, sum(sal) as total_sal, listagg(ename,' ,') within group by(order by ename) as total_namefrom tabnamegroup by cid;如上结果所示
2015-09-08 10:23:59
401
原创 oracle中的正则表达式
1.regexp_replace 相当于同时执行了多个replace()函数; 实例在前面的文章中已经有了介绍2.regexp_like比如查询只包含字母或数字型的数据select a from vwhere regexp_like(a,'^[0-9a-zA-Z]+$');注:"$"该符号在方括号外,表示字符串的结束。regexp_like对应普通的
2015-08-21 16:04:44
731
原创 将字符和数字分离
1.可以使用正则表达式:select regexp_replace(a,'[0-9]',' ') d, regexp_replace(a,'[^0-9]',' ') efrom table;注:[0-9]一种表示方式,代表[0123456789],还可以写成[[:digit:]];"^"表示否定2.
2015-08-21 15:43:00
1304
原创 从字符串中删除不需要的字符
比如删除‘abc’,三种方法1.select str1,replace(translate(str1,'abc','eee'),'e'.' ') str from table;2.select str1,translate(str1,'1abc','1') str from table;3.使用更简单的正则函数regexp_replace,直接把[]内列举的字符替换为空
2015-08-21 10:52:48
566
原创 计算字符在字符串中出现的次数
比如‘a,b,c’这个字符串中计算子串个数,我们一般都是计算其中的逗号个数加1create view v as select 'a,b,c' as str from dual;oracle11g给出了新函数regexp_countselect regexp_count(str,',')+1 as cnt from v;而在11g之前没有这个函数,我们可以用regexp_re
2015-08-21 10:43:51
702
原创 PLSQL Developer连接Oracle11g 64位数据库配置详解
PLSQL Developer连接Oracle11g 64位数据库配置详plsql developer暂时没有64bit版本的,所以无法连接到64bit的oracle上,经过一番折腾,终于成功连接到数据库上,现记录下配置过程,以便查看。1. 下载instantclient-basic-win32-11.2.0.1.0(oracle官网下载地址:http://www.oracle.com/t
2015-08-20 17:29:47
818
原创 linux挂载
1.linux系统中有时会出现当机房停电或者重启服务器后导致存储掉了对于这种情况,可采用自动挂载的方式:使用cat /etc/fstab命令查看(/etc/fstab用来定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置)在最后一行可添加一行这样的命令,格式如下:/dev/sdb3 /mnt2 ext4 defaul
2015-08-20 17:17:50
320
原创 oracle获取当前用户下所有的表名和表注释
1.select table_name from user_tables;当前用户select table_name from all_tables;所有用户select table_name from dba_tables;包括系统表select table_name from where owner='用户名';/*用户名要大写*/
2015-08-20 17:10:39
1689
原创 装数据库的准备工作
1.查看cpu cat /proc/cpuinfo2.查看磁盘 df -m3.看内存 free4.fdisk -l 分区5.uname -r 看内核6.cat /ect/redhat-relese7.file /sbin/init 看多少位8.ipconfig setup配置网络 注意:重启网卡要一个个的重启 ifup
2015-08-20 16:51:42
458
原创 oracle常见报错总结
ORA-00028:您的回话已被删除 oracle请求服务过长,导致数据传输中断ORA-00932:不一致的数据类型,要求得到的却是blob blob字段不许distinct,insert,update等操作,他是特殊的对象,其实数据库里记录的只是一个类似指针的对象,就像一个试图的概念ORA-01427:单
2015-08-20 16:49:37
608
原创 oracle去重
1.oracle查找表中的重复数据 select testid,count(1) from table group by testid having count(1)>1; testid 标签号2.去重 detele from tab_name a where col1,col2 in(
2015-08-20 16:37:32
760
原创 删除oracle表中名称重复的记录
介绍三种方法:1.建立组合索引 create index idx_name_id on table(name,id); delete from table a where exists(select null from table b where b.name=a.name
2015-08-20 16:00:17
623
原创 浅谈中国式项目
为什么叫中国式项目了?其实是源于上次跟公司一个高级项目经理交谈得到的一个很片面的叫法。他提到一个目前中国做项目的一个现象:项目是没有明确的起点的。怎么来解释了?他说当你所在的公司从事某特定一个行业,当国家出台一个新的策略,或者出现一种新的行业时,项目在那时可能是已经开始了;你的公司会委派相关人员与甲方和谈,谈论关于项目建设的问题,甲方可能对目前的形势及以后的动态并不是很清楚,正处在犹豫期阶
2015-08-14 14:35:36
421
原创 合并merge into
语法:merge into t1 using t2on(t1.c1=t2.c3)when matched thenupdate/delete/.. set t1.c2=t2.c4when not matched theninsert(c1,c2) values(t2.c3,t2.c4);要点:1.语句merge into t1 只能更改t1的数据2.updat
2015-08-14 10:36:07
565
原创 PL/SQL学习笔记
1. PL/SQL(Precedural Language SQL)是Oracle在标准SQL的基础上增加了过程化处理,把DML和select语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作,实现复杂的功能或者计算的程序语言。2. 与java不同的是PL/SQL将复杂的业务逻辑写入过程、函数中,再调用。3. PL4. PL/SQL块分为:declare声明部分;beg
2014-04-28 20:28:58
868
原创 关于Oracle11g的了解——事务
事务重要性:关于事务,不得不说它在oracle中占据了重要的地位。概念:从概念来讲,它包含一组数据库命令,构成单一逻辑工作单元的操作集合;是访问并可能更各种数据项的一个程序执行单元,是不可分割的工作逻辑单元;是并发操作的最小控制单位。简单来说,事务是一组DML语句和commit/rollback组成,是改变数据最小逻辑单元;如果是commit,表示数据入库,如果是rollbac
2013-11-08 15:03:30
811
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人