[原创]Oracle天大的Bug

juwuyi 2005-03-16 08:54:06
Oracle天大的Bug
任何发现都需要痛苦的经理,而我就是被这样折磨后发现了这个bug

可执行文件在开发的时候好好的,随便怎样都能运行

可当我把它考到别的目录下,它始终连不上数据库

我的开发工具是Delphi5,数据库是Oracle9i

它报的ErrorCode为06421。

从网上搜索了好久也没有找到任何答案......

只找到了很多从这台机子上可用,可是到了别台机子就无法连接Oracle的种种求救讯息

还好,终于被我找到了这个该死的深藏不露的答案:

凡是在可执行文件的路径中包含“()”时,就无法连接Oracle数据库。ErrorCode为06421

路径比如:D:\Delphi\Oracle(demo)\demo.exe , D:\Delphi(demo)\Oracle\demo.exe或者是

D:\Delphi\Oracle\demo(demo).exe时,都无法连接数据库。

只要你将“()”去掉,一切都恢复正常。

原先我还以为是Delphi5的问题,于是在Delphi7下测试,也发现了这个问题。

又以为是Delphi5BDE控件的问题,换成了Ado也同样有问题。

再者用PL/SQL Developer来测试,将它的路径加上“()”,也同样有这个问题,但它的ErrorCode为ORA-12154 TNS:无法处理服务名

所以我敢说,这是Oracle的一个bug!

如果有朋友在这个问题上苦苦挣扎,那么希望此帖对大家有用!
...全文
619 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
biao123 2005-03-17
  • 打赏
  • 举报
回复
UP
lytone52 2005-03-17
  • 打赏
  • 举报
回复
ding! lou zhu gao a !
aran11 2005-03-17
  • 打赏
  • 举报
回复
我也用 Delphi+Oracle, 感谢楼主啊! :)
mqmmx 2005-03-17
  • 打赏
  • 举报
回复
我用vb也有这样的问题上,开始我还已为是ado对oracle的支持不好,看来是oracle的问题。
tiaoci 2005-03-17
  • 打赏
  • 举报
回复
标记,回家记录 :)
sanoul 2005-03-17
  • 打赏
  • 举报
回复
我说的odac只是希望能够帮助你解决问题 ^_^
sanoul 2005-03-17
  • 打赏
  • 举报
回复
呵呵,我只是从字面上理解你所说的含义:
D:\Delphi\Oracle(demo)\demo.exe ,
D:\Delphi(demo)\Oracle\demo.exe ,
D:\Delphi\Oracle\demo(demo).exe
++++++++++++++++++++++++++++++++++++++
刚才试了一下,把plsql developer修改了文件夹,产生错误如下:
***********************************************************************
Fatal NI connect error 6413, connecting to:
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
)
(CONNECT_DATA=(Sid=orcl)
(CID=(PROGRAM=C:\Program Files\PLSQL (Developer)\plsqldev.exe)
(HOST=mycom)
(USER=Administrator)
)
)
)

-------------------------
很明显,错误的产生是因为Oracle解析时候产生的,看来是你说得原因,解析程序地址时()会产生参数错误

VERSION INFORMATION:
TNS for 32-bit Windows: Version 8.1.6.0.0 - Production
Time: 17-3月 -2005 10:32:05
Tracing not turned on.
yxxx 2005-03-17
  • 打赏
  • 举报
回复
学习一下
qiaoroger 2005-03-17
  • 打赏
  • 举报
回复
8i就有这问题。。。。俺当初郁闷了两天才发现~~
carbonic 2005-03-17
  • 打赏
  • 举报
回复
mark
juwuyi 2005-03-17
  • 打赏
  • 举报
回复
to sanoul(垃圾):

1、我说的是可执行文件的路径,不一定是导入导出
2、公司产品用的是BDE,因为早期是用Delphi5开发的。还有,我说的这个问题跟用什么开发工具没有关系,因为我试过 PLSQL Developer,修改它的路径,也同样存在问题。相信所有的应用都存在此问题,无关其开发工具。当然你说的Odac也不错。

zexi(苦行浪子) :
作为严谨的编程人员,规范化的命名规则是应该遵守的,包括程序的名称和路径

关于你说的这个观点,本人很赞成。但是赞成归赞成,你还是无法避免意外情况的产生。

我的目的是当你遇到这样的困难,而你又没办法解决的时候,我这帖子对你来说无疑是一副解药!
zexi 2005-03-17
  • 打赏
  • 举报
回复
to juwuyi(我有,我可以)

作为严谨的编程人员,规范化的命名规则是应该遵守的,包括程序的名称和路径
「已注销」 2005-03-17
  • 打赏
  • 举报
回复
UPING......
sanoul 2005-03-17
  • 打赏
  • 举报
回复
如果你用这个东东,估计类似于特殊路径也不会有什么bug
sanoul 2005-03-17
  • 打赏
  • 举报
回复
既然你是使用Delphi开发程序的,个人建议你使用Odac控件,这个东西只需要一个oci.dll,客户端程序无需Oracle客户端环境,无需BDE环境
sanoul 2005-03-17
  • 打赏
  • 举报
回复
这可能和Oracle的语言包有些关系,记得我安装Oracle在某台机器的时候,总是报这个错误,后来才发现如果机器名是中文的话也会带来此类问题。

还有一种情况是如果路径中含有空格,oracle的有时也无法定位该地址,最好是在编写程序的时候,用双引号确认,例如:
exp myuser/mypass file="c:/program files/myoracle/mydatebak.dmp" buffer=20000

exp myuser/mypass file=c:/program files/myoracle/mydatebak.dmp buffer=20000
这两个效果完全不一样。其他调用也是一个道理
alfonsoalfonso 2005-03-17
  • 打赏
  • 举报
回复
学习!
juwuyi 2005-03-17
  • 打赏
  • 举报
回复
to zexi(苦行浪子):


这根Oracle没关系,跟什么有关系?
commanddos 2005-03-17
  • 打赏
  • 举报
回复
准确的说应该是)的问题,如果路径中即使含有(也没有问题
juwuyi 2005-03-17
  • 打赏
  • 举报
回复
to baojianjun(包子):

哈哈,原來是DELPHI的問題


什么意思?
加载更多回复(25)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧