Change Schema Name (II)
就像在前一篇提到的,更改一个Schema Name会带来诸多问题,不仅仅是ORA-01031, ORA-28100这些问题,还会造成一些更加诡异的问题,今天就碰到了 :(
事情是这样的, 在更改过之后的Schema里面执行了一条普普通通的SQL语句,结果出现了令人摸不着头脑的错误---
No more data to read from socket
紧接着当前数据库的连接就断掉了!!!!!
我把这条SQL中涉及的表,视图一个个分开单独来查询,最后终于定位到当查询某个视图的时候,出现了这个"No more data to read from socket"的错误信息!! 通过查看这个视图的定义,发现这个视图的SQL语句用到了一个自定义的聚集函数!
难道问题出在这个自定义聚集函数上吗?这个自定义的聚集函数还是蛮简单的,就是把一系列的字符串穿成一行,默认用’,'来分隔. 果然,如果调用这个自定义聚集函数就会出现这个错误,其他都正常,这个太诡异了! 其他schema下的这个自定义聚集函数运行都正常,唯独我该了schema名字之后的这个函数有问题。无奈之下,尝试把这些自定义函数对应的类型定义重新”显示“compile下,(不是in-place recompile, 而是重新执行下该类型的create or replace语句)最后把这个自定义函数重新compile一下,结果再次运行之前出问题的SQL语句,居然成功了!!
虽然这个问题解决了,但是不是很明白为啥会出现这个问题 :(
<conclude>
这件事更加说明,还是不要轻易去更改一个Schema的名字,切记切记!!!
--------------------------------------
Regards,
FangwenYu