oracle 乱七八糟的技巧

标签: oracle 技巧 | 发表时间:2014-09-12 16:28 | 作者:未老先胖
出处:http://www.iteye.com
用了oracle3年的一些技巧 实在懒得整理了。。。
恢复误删表数据的语句
insert into tablename
select * from tablename as of timestamp to_date('2013-03-25', 'yyyy-mm-dd');

误删oracle表  恢复办法
select * from recyclebin;
flashback table tablename  to before drop;


清除共享池
alter system flush shared_pool;

DECODE函数
oracle特有的函数decode(colmn,值,代替的值,以上都没有原来的值)
在其他数据库可以使用case  when 来代替
sum(decode())  分类汇总对数据



oracle字符串连接问题
可使用'||'连接符如下:
select col1 as description,col2 ||'('|| col3 ||')' as label from table
还可以使用concat( str,str)函数在标准的SQL中允许存在2个以上的参数 但是oracle中只能支持两个参数但可以使用多层嵌套来解决这个问题
多个字段distinct 的技巧
对数据的多个字段distinct的方式可以使用||来对数据进行查询

在不记得的情况下找表或者存储过程
查看所有存储过程或者函数
select * from user_source where type='PROCEDURE' and name='XXXX';
查看所有的表
select * from tab where tname like '%XXX%';
查看一些DBA 信息
select * from dba_source;

某个值为空时替换函数
String1是要替换的字段 replace_with是替换的值
mysql是ifnull(string1, replace_with) 
mssql是isnull(string1, replace_with)
oracle是nvl(string1,replace_with)
oracle nvl2(str1,str2,str3) str1不为空是str2 str1为空是str3

oracle取四舍五入的约数值
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
说明
number : 将要处理的数值
decimal_places : 四舍五入,小数取几位,不填默认为0
select round(123.456) from dual;              结果: 123
select round(123.456, 0) from dual;          结果: 123
select round(123.456, 1) from dual;          结果: 123.5
select round(123.456, 2) from dual;          结果:123.46
select round(123.456, 3) from dual;          结果: 123.456
select round(-123.456, 2) from dual;         结果:-123.46

在某些计算的情况下注意使用round来进行处理否则会出下小数部分太长而自动转换为科学计数法的情况


查找子节点的sql
select * from  XXXX connect by prior cols=colf start with cols='001'
主要作用是上下级关系的数据进行间隔查询


临时表创建
DROP TABLE TABLENAME CASCADE CONSTRAINTS;
CREATE GLOBAL TEMPORARCREATE INDEX TABLE_INDEX ON TABLENAME
Y TABLE TABLENAME
(
  DEPARTID  VARCHAR2(8 BYTE),
  TYPE      VARCHAR2(20 BYTE)
)
ON COMMIT DELETE ROWS
NOCACHE;

(DEPARTID, TYPE);
临时表的作用主要是用于对多表查询的分步骤查询 优化sql查询速度

多个字段排序不同的规则
select * from XXX  order by col1 desc,col2 asc


1)按笔画排序
select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STROKE_M')
2)按部首排序
select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_RADICAL_M')
3)按拼音排序
select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_PINYIN_M');





已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle 技巧] 推荐:

oracle 乱七八糟的技巧

- - Oracle - 数据库 - ITeye博客
用了oracle3年的一些技巧 实在懒得整理了. 误删oracle表  恢复办法. oracle特有的函数decode(colmn,值,代替的值,以上都没有原来的值). 在其他数据库可以使用case  when 来代替. sum(decode())  分类汇总对数据. oracle字符串连接问题. 可使用'||'连接符如下:.

ORACLE SQL TUNING各种技巧及复杂实例

- - 数据库 - ITeye博客
ORACLE的优化器共有3种:. CHOOSE (选择性). 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须定期更新统计信息,以保证数据库中的对象统计信息(object statistics)的准确性. 如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关.

Oracle 收购 Ksplice

- feng823 - LinuxTOY
实现无需重启即可为 Linux 内核打安全补丁的 Ksplice 被 Oracle 收购. 在被收购前, Ksplice 为 Fedora, Ubuntu 免费提供该功能,对于 RHEL 和 CentOS 则需要订阅其产品. Oracle 表示将把 Ksplice 带来的零宕机安全更新功能添加到 Oracle 产品订阅服务中,同时停止对其他企业级 Linux 发行版的支持,将 Oracle Unbreakable Linux 打造成唯一具备零宕机安全更新功能的企业级 Linux 发行版.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

oracle license计算

- Fenng - eagle&#39;s home
Oracle license的计算是基于CPU core的. 用core的数目乘以一个系数core factor就可以得到所需的oracle license的数目. 对于不同的CPU,core factor是不一样的,可以从oracle提供的这张列表中查到 Oracle Processor Core Factor Table.

Oracle Exadata初探

- - 技术改变世界 创新驱动中国 - 《程序员》官网
在我们看来,它是一个把硬件和软件根据合理的配置整合在一起的 Oracle数据库(在本文编写时是11gR2版本)平台. Exadata数据库机器包含了存储子系统,在存储层上运行着研发的新软件,这使得研发人员可以做一些在其他平台上无法完成的事情. 实际上,Exadata一开始是以一个存储系统形式诞生的,如果你跟参与研发此产品的人交谈,你经常会听到他们称存储组件为Exadata或者是SAGE (Storage Appliance for Grid Environments,网格环境存储设备),这是该产品研发项目的代码名称.

Oracle MySQL Or NoSQL续

- - Sky.Jian 朝阳的天空
接前面一篇,这里再将之前在“中国系统架构师大会”5周年的时候发布的纪念册“IT架构实录”上的一篇文章发出来,也算是前面博文中PPT的一个文字版解读吧. Oracle,MySQL 还是 NoSQL. 随着阿里系的“去IOE”运动在社区的宣传声越来越大,国内正在掀起一股“去xxx”的技术潮. 不仅仅是互联网企业,包括运营商以及金融机构都已经开始加入到这个潮流之中.

[转]Oracle 碎片

- - 小鸥的博客
  当生成一个数据库时,它会 分成称为表空间( Tablespace )的多个逻辑段( Segment ),如系统( System )表空间 , 临时( Temporary )表空间等. 一个表空间可以包含多个数据范围( Extent )和一个或多个自由范围块,即自由空间( Free Space ).

oracle 索引

- - 数据库 - ITeye博客
        自动:在使用primary和unique后系统会自动创建唯一索引.         手动:create   index   索引名  on 表名(字段1,....). 查询表上有哪些索引(网上找的,能用,表名和索引名要大写). 1、查找表的所有索引(包括索引名,类型,构成列):. select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表.

Oracle索引

- - Oracle - 数据库 - ITeye博客
在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快. 索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分. singlecolumnorconcatenated  对一列或多列建所引.