利用Uniread解决Linux下的SQL*Plus 命令行历史回调功能(readline)

大家知道, 在 Windows 平台 命令行中的 SQL*Plus 有命令行历史回调的功能,在SQL*Plus工具下面,可以利用键盘的”向上向下”箭头键对命令行的进行回调.而在Linux上则没有该功能(虽然 Shell 可以做到这一点,但是 SQL*Plus 不可以). 而该功能对于CLI爱好者来说几乎是不可缺的,不知道为什么 Oracle 不把这个功能加进来.不得而知了.

一些SQL*Plus 的替代产品(如 gqlplus 以及 yasql )具备command-line editing 和Command history的功能, 但是这
些产品的开发进度较慢–有的甚至已经停止了更新.

(参见: gqlplus – http://sourceforge.net/projects/gqlplus 以及 yasql – http://sourceforge.net/projects/yasql/
SQL*Plus 替代工具 ).

在网络上闲逛的时候, 发现了一个在Linux下面的解决办法.

该工具叫做 uniread – http://sourceforge.net/projects/uniread/ ) ,熟悉Linux下变成的朋友可能看到这个名字已经
想起了一些东西:readline . 不错,该工具就是利用GNU的readline库来完成我们的需求的.

继续阅读

现在的计算机专业学生怎么这个样?

前几天和一位做人力资源的朋友在饭店里面喝酒,聊起来大学生找工作不好找的话题.我的这个朋友对这个还真比较感兴趣,说着说着从公文包里拿出来一份简历递给我看.投递者是一位计算机应届研究生。一看之下,差点没吓死–简直就是一个超人啊:

专业知识和技能
>软件工程
>
>牢固掌握软件工程专业的主要专业课程,包括软件工程、面向对象的系统分析和设
>计、软件测试、软件过程管理等软件工程核心课程。
>
>操作系统
>具备对操作系统相关高级理论和实践的专业知识和深入理解,对各种
>UNIX、Linux、Windows、Mach、Mac OS、OS/2、VMS/OpenVMS、S360/370以
>及多种嵌入式和实时操作系统的体系结构、底层机制和核心技术有广泛深入的研究
>和透彻的理解。在超过7年以上的时间中一直密切关注操作系统领域的最新进展。
>对操作系统理论和技术的发展史、现状以及未来发展趋势有着广博的知识和深刻而
>独到的见解。牢固掌握操作系统开发相关的技术细节,具备开发实际操作系统的能
>力和经验。
>
>系统管理
>具备8年以上的Windows操作系统在单机和服务器环境的使用和管理经验、7年以上
>的UNIX类操作系统在单机和服务器环境的使用和管理经验、2年以上的Web服务器管
>理经验和1年以上的数据库系统管理经验。
>
>网络技术
>牢固掌握种种网络相关技术,对TCP/IP网络的理论、体系结构和实现有深入透彻的
>理解,对常用的RFC标准和实现有深入的理解。
>具有4年以上的UNIX、Linux、Windows等操作系统平台上的网络应用开发经验。
>
>数据库技术
>
>牢固掌握关系型数据库和面向对象数据库的相关理论,对Oracle、DB2、SQL
>Server等主流数据库管理系统的体系结构和实现机制有较深入的理解。
>熟练掌握标准SQL语言。熟悉ODBC、JDBC、OLE
>DB、DAO、ADO、ADO.NET以及基于XML的数据库访问等数据库访问机制。
>具有2年以上的使用C/C++、Java、Visual Basic、PERL、Python等语言或开
>发工具开发数据库应用的经验。
>
>企业级技术
>
>对企业级应用的思想和技术要点有深入的理解,熟悉各种中间件技术,熟练掌握
>J2EE、Microsoft .NET、CORBA等企业级的开发技术。有一定的企业级应用的开发经验。
>
>软件工程
>
>对传统的结构化软件工程、面向对象的软件工程、软件工程的形式化方法、净室软
>件工程、设计模式、Extreme Programming、软件配置管理等软件工程思想和理
>论有深入透彻的理解。牢固掌握现代软件工程的各种规范。
>熟悉UML。熟练掌握Rational
>Rose等系统分析和设计工具。熟练掌握CVS、RCS等软件配置管理工具。熟练掌握
>Bugzilla等错误跟踪工具。
>具有2年以上的软件工程实践经验。对软件工业的历史、现状及未来发展趋势有广
>博的知识和深刻而独到的见解。
>
>软件过程管理
>
>对软件过程管理思想和理论有深入透彻的理解。对能力成熟度模型(CMM)和理论、
>内容和实践方法有牢固的掌握和深入的理解。对技术人员管理的思想和理论有深入
>的理解和独到的见解。
>
>计算机科学
>
>  对计算理论、可计算性和难解性理论、组合逻辑理论有深入的理解。
>  对算法设计和分析的理论和方法有深入透彻的理解。
>  牢固掌握布尔代数和计算机逻辑电路的相关理论知识。
>  对计算代数和计算几何的理论有初步的了解。
>
>对现代计算机体系结构,特别是各种规模的并行计算、分布式计算体系结构、网格
>计算,以及诸如超长指令字、数据流等下一代体系结构的理论和实现机制有深入透
>彻的理解。具有在RISC和超长指令字体系结构上的开发经验。
>
>对形式语言的语法和各种语义理论、程序设计语言各种范型的理论和实现机制有深
>入透彻的理解。精通编译器相关的理论和技术。具有对数十种程序设计语言的不同
>程度的了解和开发经验。对程序设计语言的历史、现状和未来发展趋势有广博的知
>识和深刻而独到的见解。
>
>
>数学
>对逻辑主义、形式主义、直觉主义、数理逻辑、公理集合论等数学基础思想和理论
>有深入的理解。
>熟悉现代代数理论和方法。 对现代数论的理论和方法有较深入的理解。
>对几何、拓扑学、组合数学等数学分支的现代理论和方法有较深入的理解。
>
>密码学
>系统的理解和掌握古典密码学和现代密码学的理论和技术。对加密算法、安全协议
>和密码分析的理论
>和方法有深入的研究。对各种重要的现代加密算法和安全协议在多种环境下的设计
>和实现有丰富的经验。熟悉PKI体系结构。
>
>办公自动化
>
>精通Microsoft Office系统办公自动化软件的高级应用和配置管理。
>熟练掌握使用Visual Basic for Application、COM/OLE/ActiveX等技术
>对Microsoft Office系列进行进一步的开发。
>了解使用Lotus Script对Lotus Notes的进一步开发技术。
>
>平面设计
>
>精通Adobe Illustrator、MacroMedia
>FreeHand、CorelDRAW等主流矢量绘图工具,Adobe Photoshop、
>Jasc Paintshop Pro、GIMP等主流图像处理
>工具,MetaCreation/Corel Painter等主流位图创作工具,以及
>Adobe InDesign、QuarkXpress、TeX/LaTeX、
>方正、Adobe PageMaker、Corel Ventura等主流的专业/商业排版软件。对
>PostScript、PDF、SVG、各种字体
>技术等电子出版业的核心技术有极深入的研究和丰富的开发经验。对印刷出版业
>的各种业务流程、行业规范和专业技术有专业水平的了解和 丰富的经验。在专
>业平面设计、排版领域有三年以上的实践经验。
>
>三维动画设计
>
>熟练掌握Alias|Wavefront Maya,能够进行专业水平的三维动画设计和制作。
>
>程序设计语言
>
>  精通以下高级程序设计语言:
>  ANSI C
>  ANSI C++
>  Objective C
>  Java
>  C#
>  ISO Basic
>  Visual Basic
>  Visual Basic.NET
>  ISO Pascal/ISO 扩展Pascal
>  Object Pascal
>  ADA 83/ADA 95
>  Smalltalk 80
>  Modula/Modula-2/Modula-3
>  Haskell
>  VBScript
>  JavaScript/JScript
>  PERL
>  Python
>  AWK
>
>  熟悉以下高级程序设计语言:
>
>  PHP
>  FORTRAN 77/FORTRAN 90
>  Common LISP
>  Scheme
>  ML
>  APL
>
>  精通以下体系结构上的机器语言/汇编语言:
>
>  Intel 8086/8088
>  IA32/MMX/MMX2/SSE/SSE2
>  AMD64
>  3DNow!/Enhanced 3DNow!
>  MIX
>  MMIX
>
>  熟悉以下体系结构上的机器语言/汇编语言:
>
>  POWER
>  Power PC
>
>  了解以下体系结构上的机器语言/汇编语言:
>
>  IA64
>  MIPS
>  Alpha
>  Sparc
>  ARM
>  680x0
>  Transputer
>  IBM 7094
>  IBM 360/370
>
>开发工具
>
>  Microsoft Windows Platform Software Development Kits
>  Microsoft Windows Driver Development Kits
>  Microsoft Visual Studio
>  Microsoft Visual Studio.NET
>  Borland C++
>  Borland C++ Builder
>  Borland JBuilder
>  Borland Together
>  Borland Delphi
>  Borland Kylix
>  GNU Compiler Collection(GCC)
>  GNU Binutils
>  GNU Debugger
>  GNU Emacs
>  VIM
>  GTK+
>  Qt
>  Anjuta
>  Glade
>  KDeveloper
>  QT Designer
>  Rational Rose
>  CVS
>  RCS 

看后,我不禁感到好笑,嘟囔了一句,这样的高人还用找工作?干脆让国家养着算了,简直是超人阿。
朋友笑着对我说:你还真是少见多怪,我这里类似的简历还有很多呢。那天,我的朋友多喝了点酒,就滔滔不绝的说了现在的计算机专业的大学生,事后想起来一些关于谈话的碎片,可能都不完整了,整理下来,给大家增加点谈天的内容吧.

继续阅读

数据仓库图书简评

数据仓库近来成了很多 IT 人的话题。在ERP 、CRM 之后忽然间出来个一个 BI。说到 BI 不能不提
DW (数据仓库)。现在书店里数据仓库的书籍并不是很多,有的还比较陈旧,笔者在这里把自己对
一些数据仓库图书的印象罗列出来,供读者参考。主观印象比较重,有不恰当的地方请多指教。

当然有一点要说明的是,对于数据仓库这种偏重实施性的项目,仅有图书是没有用的,更多的时候还
要靠项目经验。

数据仓库(第3版) — 机械工业出版社

原书名:Building the Data Warehouse (Third Edition)
原出版社:John Wiley & Sons
ISBN:0-471-08130-2
作者: W.H.Inmon
译者:王志海 林友芳 等
书号: 7-111-11634-8
页码: 271
评级:四星半

该书是数据库之父 Bill Immon 的大作。

出版商宣称这是一本”数据仓库方面公认的《圣经》级权威著作”,笔者认为这稍微有些夸张(老外形容书重要程度,总是用Bible这个词)。这本书在技术上的深度还是有限的,在理论上的描述多于实践。这并非一本大而全的图书,毕竟这只是 John
Wiley & Sons 出版的数据仓库系列中的第一本而已。值得称道的是,作者对数据仓库的一些特性进
行了权威性的描述。关于基本概念、基本原理以及建立 DW 的方法和过程也是该书所令人赞赏之处。

从翻译上来看,毕竟有着第二版翻译的基础,错误还是比较少见的。就是译者太多,对整本书的翻译
风格没有一个更好的把握

顺便说一下,此书装帧比较精美,读起来赏心悦目

此书的确堪称经典。适合阅读对象:数据库入门新手。


The Data Warehouse Toolkit (Second Edition)
–The Complete Guide to Dimensional Modeling

作者: Ralph Kimball Margy Ross
出版社:John Wiley & Sons
页码: 447
评级:五星

Ralph Kimball在数据仓库领域里是和 Bill Immon 齐名的专家。此书是其扛鼎之作。正如书名副标
题说明的那样 , 对维度模型进行了权威性的探讨,并针对不同的应用领域应用进行介绍。如果有人问:
什么是数据仓库?可以告诉他到《数据仓库》一书中寻找答案,如果有人问到维及维的具体应用,那
么可以告诉他来阅读此书。 The Data Warehouse Toolkit 能够就这个话题给出最权威的答案。

在网络上可以看到本书的英文电子版(自己也是相见恨晚),目前尚无中文翻译版本,据说电子工业
出版社正在准备出版,拭目以待吧!

补充:目前此书的中文版本已经面市。有兴趣的朋友不妨一阅。
   Fenng还没有看到这本中文版,暂不作任何评价。

继续阅读

ORA-01034 错误的解决办法

这是个Oracle数据库服务器比较常见的错误。有经验的用户几乎马上就能解决这个错误,再不济也能马上到 Metalink(http://metalink.oracle.com)去搜索一下。
不幸的是,大多的时候,都是初级用户遇到的这样的问题(对他们提 Metalink 也起不到什么作用–一般都没有上面的帐号:))。所以,这个小帖子可能还有一定的作用。
问题描述
在试图启动数据库的时候,Oracle报告下列错误:

ERROR:
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available

基本解释

Error: ORA-27101 
Text: shared memory realm does not exist
-------------------------------------------
Cause: Unable to locate shared memory realm Action: Verify that the realm is accessible

如何解决
这个问题其实用一句话就可以说清楚:
ORACLE_HOME或者ORACLE_SID设置不正确.在以前的版本中,如果ORACLE_SID不正确,一般都只提示 ORA-01034。Oracle 8.1.7 给出一个额外的信息:ORA-27101。
如果是Unix,在Shell里把ORACLE_SID设置正确即可(注意大小写敏感的问题)。此外,检查ORACLE_HOME 环境变量。如何检查参考如下的命令:

% echo $ORACLE_SID
% ps -ef |grep smon 

如果是Windows,一般都是因为系统中有多个实例造成的。
可以在命令行下 

C:\>set ORACLE_SID=DEMO

把这里的DEMO换为你相应的实例名。如果还不行的话,检查注册表中的ORACLE_HOME。
此外,在Windows环境下有的时候连接不上远程的数据库,会报告如此的错误。
解决办法是把sqlnet.ora文件中的 SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS 换 为NONE。
最初发表在 http://dev.csdn.net/article/20/20163.shtm. 以后的维护版本以这里为准。
EOF