今天使用PL/SQL Developer时发现一个BUG。
新建同名的两个用户,只是一个用大写,一个用小写,比如:a,A。
打开PL/SQL Developer的USERS节点,找到a右击后选drop,我发现a并没有被删除,而是A被删除了。
当你再在a处右击选drop时会报错:Error dropping a:ORA-01918:用户'A'不存在。
我用的版本是:
PL/SQL Developer v7.1.4.1390使用SQL语句:DROP USER "a" cascade
则可顺利将用户a删除。不知道大家有没有遇到这样的问题。

解决方案 »

  1.   

    不是bug,是oracle的sql区分大小写导致的。
      

  2.   

    我刚才试了下,PL/SQL Developer v7.1.5.1398上也有这个问题。估计这个工具在执行时,把小写的都转成大写后再执行的。
      

  3.   

    不光用户,表也一样,你建表小写加上双引号,同样删不掉
    字段名用了关键字,edit data后没法保存
    编辑数据的时候,互换两行的主键,每次都主键冲突
    等等等等,问题多多,我除了用它那些模版,小工具,数据操作一般不用它。
      

  4.   

    PL/SQL Developer每次执行语句时直接把语句发送到oracle数据库
    让oracle数据库执行,问题是每次发送语句是这样发送的
    例如要删除用户a,则 PL/SQL Developer 发送的是: drop user a
    请注意看,因为没有对a加双引号,所以oracle数据库的翻译就是对应大写的A
    而我们自己发送的语句: drop user "a"
    因为加了引号,所以oracle数据库知道对应的是a
    所以就可以删除a了,这不是PL/SQL Developer的Bug,是oracle数据库的一个特性引起的