楼主: fei

[精华] Oracle--毛病篇

[复制链接]
论坛徽章:
7
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-01-04 08:33:08ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512013年新春福章
日期:2013-02-25 14:51:242015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2001-12-13 18:49 | 只看该作者
DDL语句的用户们:
  alter table tname add(col1 type...);
  alter table tname modify(col1 type...);
  alter table tname drop column(col1);
  为何非要在drop里多出来一个column?
-- 这这这.... 果然高手,
//drop column在MSSQL也是这样缺省是CONSTRAINT
//估计是ANSI的问题

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-01-04 08:33:08ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512013年新春福章
日期:2013-02-25 14:51:242015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
12#
发表于 2001-12-13 18:50 | 只看该作者

Oracle UI确实比较粗糙

DDL语句的用户们:
  alter table tname add(col1 type...);
  alter table tname modify(col1 type...);
  alter table tname drop column(col1);
  为何非要在drop里多出来一个column?
-- 这这这.... 果然高手,
//drop column在MSSQL也是这样缺省是CONSTRAINT
//估计是ANSI的问题

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
13#
发表于 2001-12-13 19:51 | 只看该作者
9494

使用道具 举报

回复
论坛徽章:
63
版主7段
日期:2012-05-15 15:24:11itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-10 14:34:59马上加薪
日期:2015-01-08 15:39:192015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
14#
发表于 2001-12-13 22:42 | 只看该作者
好东西,麻烦斑竹copy到开发版,谢谢!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
15#
发表于 2001-12-13 23:11 | 只看该作者
再给ORACLE挑挑毛病:

你用OTN.ORACLE.COM的SEARCH功能时, 如果想查符号,如@,@@
你会在它的页面上,得到如此信息 :

Error generating context stmtORA-29902: error in executing ODCIIndexStart() routine ORA-20000: interMedia Text error: DRG-50901: text query parser syntax error on line 1, column 1


TRY IT!

使用道具 举报

回复
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:20:002011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412013年新春福章
日期:2013-02-25 14:51:24
16#
发表于 2002-1-5 02:34 | 只看该作者
Also see Dr. Huang's findings:

http://www.stormloader.com/yongh ... Idiosyncrasies.html

Oraguy

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
17#
发表于 2002-1-5 03:10 | 只看该作者
Oracle--养生之道
蓝森林 http://www.lslnet.com 2001年12月29日 18:12


作 者: 范生


——驳小赵之《Oracle--毛病篇》(12月5日)


前言:




“师者,所以传道授业解惑也 。”
首先,无论是作者的怨言还是切身感受,无论是早期的想法还是执着至今,我们今日权当技术探讨,为曾经迷惑或即将迷惑的人提供参考。
我与前文作者小赵素未谋面,但为其在技术领域的专注而感动,故落笔挥墨,简单处一带而过。

以下题号相同,可以与上篇文章同阅,不再赘述。
1、SQLPLUS只是一个客户端软件,不要指望它会继承什么,不用说serverout、pagesize,就是修改了时间显示格式,也不能被其他用户继承,这正是基于SESSION的好处啊。当然,如果你愿意永久修改些什么,可以通过修改数据字典、配置文件或注册表完成。
2、命令行编辑功能?
ORACLE调整的是缓冲区,EDIT可以实现大部分,好的管理员仍然以.SQL的脚本为主,单独的命令行少用为妙。虽然我对SQL PLUS的设计也没什么好感,但也觉得没必要弃一豹而争一斑。
3、SQLPLUS环境的命令行没有历史记录功能?
SQLPLUS现在有两个版本,(以WIN2K为例)我们如果用图形界面的SQLPLUS,其实对应的是SQLPLUSW.EXE;而如用SQLPLUS.EXE,利用系统的功能,是可以实现DOSKEY功能的。
4、命名规范混乱得一踏糊涂?
user_tab_columns, user_con_constraints,user_tables, usre_cons_columns。很有规则嘛,不要带着过去数据库的抵触情绪去理解ORACLE,我也是SQLSERVER、MYSQL、POSTSQL的开发者,所以我们要着重体会数据库思想的精髓,求同存异,这才有利于自身发展,也不至于为琐事烦恼。
5、作者已经相通了。
6、注释格式:--, 什么玩意呀?
我觉得你有必要与ANSI组织联系一下,SQL92标准的衍生物,问问微软是怎么干的?
7、PLSQL独树一帜?
PL/SQL没有号称第N代的高级语言,第四代打住了,SQL就决定了。而ORACLE也很谦虚,PL-PROCEDURE LANGUAGE,过程性语言,没有说编译,没有面向对象。至于dbms_output.put_line
  不能在FUNCTION中输出,是误解,过程可以CALL过程,因此过程中可以dbms_output.put_line,而函数可以RETURN,不会为开发带来困难。
8、没明白作者是说单引号问题还是双引号问题,不过拿语言和ORACLE相对比是不合适的,如果你说JAVA或C方便的实现,那么可以用SQLJ或PRO*C编写过程。
9、这是作者对知识点的混淆,也是没有掌握扎实PL/SQL,
var i number;
  i:=5;
  此时I是一个PLSQL变量,要输出,只能在PLSQL中输出,如*.put_line输出。
  :i := 5;
  此时:i 是一SQLPLUS的外部变量,赋值和输出,就是这种规则。
  很多时候不能想当然,如果不想走弯路,不想掘地三尺,就要踏踏实实的读些资料。
10、我无话可说,为作者的苦心感动。
11、过程和函数的用法与PLSQL匿名块的关系:
  过程的用法是要遵循各种数据库的习惯的,如MSSQL。但PLSQL是ORACLE自己的语言,可以有更多的自由。规定如何用就如何用,尤其是语法,就看个人的适应性了。唯一需要理解的是包,这是ORACLE有远见的一面,这里可以看到面向对象的痕迹,类.方法,像吧,也为以后JAVA与PLSQL的协同工作打下了基础。
12、细心AND熟能生巧。
13、我用PLSQL和SQLJ,对PRO*C不作评价。
14、DDL语句是SQL92标准的,ADD COLUMN,不用COLUMN是因为其他没有什么可以ADD,但DROP 必须加COLUMN,是因为此关键字还可以是CONSTRAINT,ORALCE没有错。
15、又回到命名的问题上了?
ORACLE的命名取舍原则是:常用的对象名或列名要简单,很少使用的名称要复杂,这是符合大多数人习惯的,尤其是ORACLE DBA,否则,一概而论反倒缺省人性化,为DBA造成沉重负担。

后话:
  肯定的说,作者的后话才是大彻大悟,说出奋斗的感觉。每一种产品,都会有优缺点,不然怎么会有后人的智慧?“人类在一个fortran语言大行其道的年代就已经登上了月球”,古人就知道善假于物也,我们可能不是爱因斯坦,但我们可以是牛顿,可以有众多可以借鉴的肩膀。ORACLE博大精深,在于她的思想和数据库的理论,不是虚张声势的外表。程序员不可多得,不是他学会多少语言。人是一个综合体,要挖掘潜在的能量,就要从不同角度入手,找到最适合自己的开发方式,使之终有一番作为。选择,并不意味着放弃原有,数据库如此,而勤奋和智慧,你又能舍弃哪一个呢?
  



http://www.sonsun.net 站长 范生(fancy@sonsun.net)

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
17
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:20:05
18#
发表于 2002-1-5 22:13 | 只看该作者

RE:

以前用ORACLE时,没有注意太多的东西,今天看了,哈!我觉得每个产品都有他的不好,但是多人喜欢他,就也说明了它的好的某一方面被别人接受了,不好的被别人原谅!

使用道具 举报

回复
论坛徽章:
2
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33
19#
发表于 2002-1-5 22:42 | 只看该作者
2. SQLPLUS环境下命令行编辑功能微弱得可怜, 看看readline, 看看MySQL
-- 这是政策性问题,sqlplus是个会话工具,不是编程工具, 把这部分应用市场留给第三方, 而且个人觉得习惯了也很好用,就象用惯了edit的人初次使用vi一样

Oracle的UI确实。。。
不过sql*plus command也实际上解决一些命令行编辑问题,不过。。。。呵呵,大家一般都用第三芳工具了,确实有点新手用vi一样

冰冻3尺,非一日之行啊,兄台能一下子提出这么多问题,兄弟佩服佩服

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
20#
发表于 2002-1-6 22:17 | 只看该作者
佩服,我要多多努力啦

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表