月度归档:2013年08月

New Site New Begining

自开始学习Oracle,一路走来,算不上艰辛,但也不轻松。之所以这样说,和我关系好的朋友都能猜到,为了进入这个行业,可以说自己投入了比较大的精力和money,但结果还是没有达到我的预期,不过这都没关系,人生在世,不如意之事十之八九,倘若事事如意,又岂能谓之为生活!

早在Oracle入门时,自己会偶尔看点有关Oracle的书籍,然后去别人的技术博客上逛逛,看到有些知识及见解觉得很不错,就随便记录下来,久而久之,零零散散的这些知识越来越多,但是自己却懒于梳理,最终被遗忘在某一个角落!

后来觉得自己可以把这些零散的知识和学习过程记录在博客上,因此便开始在新浪安家,记录的也都只是关于Oracle的,不涉及任何其他的东西,大概持续了半年时间,开始觉得这些运行商提供的站点服务太粗糙,毕竟是免费的,所以各种广告,而且所提供的博客风格及和版式都不尽人意,最后也就荒废掉了!

在厌倦了新浪无休止的广告和长到让人看见就恶心的域名串,至此终于有尝试搭建自己站点的想法,原因其实很简单,有一个自己喜欢的域名,有一个自己所喜欢风格和版式的站点,有一个自己可以发牢骚的空间。考虑到自己没有任何搭建独立站点的经验(虽然我是软件工程专业毕业,除了会一点C,其他一窍不通,提到此无比汗颜,要不我可能不会在临毕业之际考虑做Oracle DBA),于是便开始Google,甚至百度去了解建站的步骤。

正如刚提到的,作为软件工程毕业的学生,我真的给这个专业拖后腿了,编程能力基本为0,后来在Beanbee的建议下决定使用WordPress建站。今年4月份在godaddy买了域名oracldream.com,用DNSPod做解析,又在衡天买了美国的服务器,看似一切工作都就绪了,后来却因为工作的事情阁下了,直到前不久工作不是很忙,想起这事还一直搁着,就想趁这个机会把这个站点搭起来。经过4天的时间,自己的站点终于上线,这个过程可谓苦中作乐,痛苦的是在茫茫WordPress主题中寻找一款自己满意的主题谈何容易,而且还要在此基础上修改站点风格版式,快乐的是当看着自己的站点上线,域名是自己喜欢的,站点风格和版式也是自己喜欢的,这种满足感不言而喻!

如今自己的站点正式上线,在这里我会记录自己的成长,包括工作、学习、生活、情感,甚至有时可能还会吐槽,虽然现在还没有什么内容,但是这会是一个从无到有的过程,就像亲眼目睹一个孩子的成长一样温暖!

Oracle SQL*Plus Variable Setting

在Oracle数据库的日常管理维护中,对于DBA而言,无论是通过CRT/Putty等远程连接工具还是直接登录服务器方式,对数据库所做的很多操作都是在SQL*Plus下进行的,因此设置SQL*Plus的运行环境有助于美化输出结果,提高SQL代码的编写效率!

要设置SQL*Plus的运行环境,我们可以在当前session中执行某一条或几条命令,但是如果每次都需要在当前session中执行这些命令去设置SQL*Plus运行环境则无疑很繁琐,因此可以把最常用SQL*Plus环境设置写在$ORACLE_HOME/sqlplus/admin/glogin.sql文件中,这样每次使用SQL*Plus对数据库进行操就可以避免重复输入设置SQL*Plus运行环境的命令。

关于SQL*Plus环境的基本设置命令如下:

$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
define _editor=vi
set serveroutput on size 1000000
set trimspool on 
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user)||'@'||substr(global_name,1,decode(dot,0,length(global_name),dot-1)) global_name from (select global_name,instr(global_name,'.') dot from global_name);
set sqlprompt '&gname> '
set termout on 

简要解释:
define _editor=vi:设置SQL*Plus使用的默认编辑器;
set serveroutput on size unlimited:默认打开DBMS_OUTPUT同时将默认缓冲区大小设置尽可能大;
set trimspool on:假脱机输出文本时,会除去文本行两端的空格而且行宽不定;
set long 5000:设置选择LONG和CLOB列时显示的默认字节数;
set linesize 100:设置SQL*Plus显示的文本行宽度;
set pagesize 9999:控制SQL*Plus多少行记录时打印一次标题;
column plan_plus_exp format a80:设置AUTOTRACE得到的解释计划输出(explain plan output)的默认宽度;

define gname=idle
column global_name new_value gname
select lower(user)||'@'||substr(global_name,1,decode(dot,0,length(global_name),dot-1)) global_name from (select global_name,instr(global_name,'.') dot from global_name);
set sqlprompt '&gname> '

以上这部分用于设置SQL*Plus提示符,显示效果如下:

sys@10G> 

从上提示符则很清晰知道以哪个用户登录哪个数据库!

PS: This article summarized in 《Oracle Database 9i/10g/11g编程艺术-深入数据库体系结构(第2版)》