Archive for the 'Oracle RDBMS' Category

Jan 13 2006

Cool SQL function: DUMP

Published by kamus under Oracle RDBMS

征求了Eddie Awad的意见,计划以后不定期地翻译一些他的文章,这次先来一个比较简单的,也是Eddie昨天刚写的 - Cool SQL function: DUMP

Cool SQL function:DUMP

我注意到在Tom Kyte的新书中,他多次使用了DUMP函数来获得一些内部的存储样式以及指定表达式的大小。老实说,我不怎么常使用这个函数,但是在某些情况下这个函数确实很有用。

语法摘自Oracle documentation

DUMP(expr[, return_fmt
            [, start_position [, length ] ]
         ]
    )

DUMP函数返回一个包含了数据类型,字节长度和内部存储形式的VARCHAR2值。返回值通常是符合自己数据库的字符集类型的。

比如:


HR@XE> select dump('hello') from dual;

DUMP('HELLO')
---------------------------------
Typ=96 Len=5: 104,101,108,108,111

返回值告诉我们”hello”字串的长度是5ge字节,内部存储格式是”104,101,108,108,111″,数据类型是96,表示是字符串。Oracle文档给出了完整的类型代码以及说明

默认是10进制格式,我们当然也可以转化成八进制,十六进制,甚至转成单个字符的样式。

比如,转成8进制

HR@XE> select dump('hello',8) from dual;

DUMP('HELLO',8)
---------------------------------
Typ=96 Len=5: 150,145,154,154,157

转成16进制:

HR@XE> c/8/16
  1* select dump('hello',16) from dual
HR@XE> /

DUMP('HELLO',16)
----------------------------
Typ=96 Len=5: 68,65,6c,6c,6f

转成单个字符:

HR@XE> c/16/17
  1* select dump('hello',17) from dual
HR@XE> /

DUMP('HELLO',17)
-----------------------
Typ=96 Len=5: h,e,l,l,o

默认情况下,返回值不包含字符集信息,如果我们想获得字符集信息的话,可以在转化字上加1000。比如,1017(用以替换17)表示返回单个字符样式并且同时返回字符集信息。

HR@XE> c/17/1017
  1* select dump('hello',1017) from dual
HR@XE> /

DUMP('HELLO',1017)
-------------------------------------------------
Typ=96 Len=5 CharacterSet=WE8MSWIN1252: h,e,l,l,o

只要指定开始位置和长度,你也同样可以要求Oracle只返回内部存储值的一部分。

HR@XE> select dump('hello',17,1,3) from dual;

DUMP('HELLO',17,1,3
-------------------
Typ=96 Len=5: h,e,l

注意返回值里面的长度仍然是5,也就是说只有内部存储值这个部分才被截取了。

有些好奇,又没有人在自己的产品环境中使用了DUMP函数,并且整个程序的逻辑都是根据这个函数的返回值来运行的呢?

– 全文完

译者注:Eddie的blog上提供了多种语言的翻译,使用的应该是一个WP的插件,但是实际上翻译效果是让人忍俊不禁的,比如翻成中文,那么这篇blog的题目就变成了“凉快 SQL 作用: 转储”,OMG,凉快的作用…… 我倒是建议Eddie去掉这个功能算了。

另外,Eddie原创的几个Firefox Search Plugin for Oracle还是比较方便的,用Firefox的Oracle DBA们可以去下载来尝试一下。

4 responses so far

Jan 11 2006

China Oracle Blogger

Published by kamus under Oracle RDBMS

eygle在Frappr上创建了一个China Oracle Blogger的组,短短的几天,已经有将近50个成员了,好些熟悉的面孔都在里面。

Frappr是个很有趣的应用,很早以前就收在自己的delicious中,遗憾的是只有在美国,这个地域的服务才有更加实用的前景,因为地图更精细,而对于中国来说,仅仅是一个大大的雄鸡,标注地域也只能是好玩一下了吧。

Frappr像很多Web2.0应用一样,提供了大量的脚本,方便各个blogger将内容嵌入到自己的blog中,比如说像下面这个滚动的组内图片。



最后,欢迎所有在国内的Oracle DBA都来这个地图上标记一下,看看到底能有多少人。或许我们也可以用这个来统计国内的OCP人数,OCM人数吧,呵呵。

7 responses so far

Dec 28 2005

创作共用的尝试

Published by kamus under Oracle RDBMS

挺久以前我在itpub上发了一篇关于OCP认证指南的文章,反响还算不错,后来又陆陆续续作了一些更新,一直到今年年初对于Oracle取消8i认证作了更新以后就再也没有关注过OCP认证这个领域了。今天老妈邮件提醒我说有人说我的文章该更新了,于是上去看了一下,确实有不少人建议,但是由于自己可能不会再去考OCP了,自然也就没有时间长期关注OCP考试的各种变动,必然导致这篇文章的时效性逐渐减弱,虽然无奈,但仍然是我不愿意看到的。

于是决定把这篇文章加上创作共用的license

署名。
非商业用途。
保持一致。

保证上面三点的任何人都可以直接修改本文并且另行发表,但是如果发表在其他地方请务必在itpub的置顶贴中跟贴注明发表的地址。

目前还有一个疑问,因为本文曾经发表在itpub的第一本纸制书刊《Oracle数据库DBA专题技术精萃》上,这种已经有出版社出版过的文章是否可以自行修改授权方式?有没有熟悉这方面知识的人给个解答。

最后,如果可能的话,希望在创作共用的授权下,这篇文章能够保持长久的活力。

稍后,将提供增加了创作共用版权信息的文章word版本以供下载。

文章下载链接 - OCP Cook Book

48 responses so far

Nov 17 2005

What is the Grid!

Published by kamus under Oracle RDBMS

其实对于Grid的概念一直是懵懵懂懂,最初是由于Oracle10g的推出,这个10g的g就是grid的g。
之后是在上海的Oracle Openworld上,我在10g的展厅询问一个Oracle的技术人员,到底什么是Grid,他告诉我其实Grid就是Oracle9i里面的RAC(Real Application Cluster),于是我深信不疑,其实Oracle10g的Grid又只是一个造势的名词而已,究其实质也就是RAC。
甚至后来我跟不少人也都说过这个观点,有些人说哦,有些人说RAC是RAC,Grid是Grid但是Grid是什么却也说不明白。
好,现在让我们来清楚一点儿的了解到底什么是Grid吧,一篇优秀的文章来自 Howard J. RogersWhat is the Grid?
文章用QA的方式展开,在我读整篇文章的过程中感觉是如此循序渐进,每次读完上面一个问题,心中冒出的疑问恰恰就是HJR即将要解释的下一个问题,so cool,不得不佩服HJR的行文。
引用几段HJR对于Grid的观点,基本上已经很明确地告诉我们到底什么是Grid了。

Truthfully, there is no such thing as the grid component in Oracle 10g. No such thing, no such tangible product from Oracle has been made which you can point to and say ‘that is the grid product’.

To speak in familiar Oracle terms: there isn’t an option in 10g which you can license called ‘grid’. There are all sorts of other options that you might choose to licence, and if you licensed or utilised them all, you’d have something approaching the theoretical ideal of transparent, grid computing.

There is no one point where you can say ‘this is a grid’ and ‘this isn’t’. “Gridness” is a quality one strives for, but probably never quite attains!

They don’t understand that it is a mindset or an attitude, not a product.

我读完这篇文章对于Grid的理解是:
在技术层面上Oracle10g的grid不是一个组件,而是多个组件的混合体,包括RAC,ASM,ASMM,Data Pump,Grid control等等。
在实施层面上来说,grid是一种态度一种理念,如果说一个环境能够对于用户透明,能够在环境中的每个节点无处不在,能够自适应,自管理,那么这个环境就越可以称为是一个grid computing的环境。而我们可以通过技术层面上Oracle提供的那些组件来更好地实现这个理念。

最后,使用HJR的一个比喻,当你在家里打开电灯,你不知道也完全不关心电到底是从哪儿来的,电只是你需要的资源而已,你需要它就来了,当你打开水龙头也是一样。那么当我们需要数据它就来了,而你完全不需要知道这份数据是哪个服务器给你的,是哪个CPU算出来的,原来又是存储在哪快磁盘上的时候,这就是Grid了。

3 responses so far

Page 24 of 25« First...«2122232425»