用PLSQL查询oracle数据库中某个表,查询结果如果包含两个字段时就会卡死

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用PLSQL查询oracle数据库中某个表,查询结果如果包含两个字段时就会卡死相关的知识,希望对你有一定的参考价值。

用PLSQL查询oracle数据库中某个表,查询结果如果包含两个字段SHAPE.SDO_ELEM_INFO、SHAPE.SDO_ORDINATES时PLSQL就会卡死,如果输出结果不包含这两个字段就没有问题,这两个字段是arcgis的坐标信息;别的同事查询时都没有问题,唯独我查询时PLSQL卡死;而且我也换了PLSQL版本,还是报同样的错误。。。
1.我的电脑本身就一个账号,不存在不是管理员的问题或者权限问题;
2.登陆数据库的账号我与其他同事相同,所以跟数据库账号也没关系;
3.BuddhaQQ 你的回单稍微专业点,但还是没帮我解决问题,同样的环境、同样的数据库为什么我就查询不了,我要找到这个原因,而不是换工具(ORACLE DEVELOPER、TOAD)的问题;至于做VIEW有些更不现实。补充一下这两个字段是SDO_GEOMETRY类型的。

这两个字段是什么数据类型?LONG RAW? BLOB?
补充说明一下:SDO_GEOMETRY是类似多位数组的类型(好像是11g后出来的)
我在PLSQL还没遇到过,还是我的建议:
PLSQL在访问某些大数据会出现错误(可能是BUG),建议升级下PLSQL
如果已经到比较新的版本了
那就做个VIEW, 访问去掉容易出问题的两列
如果一定要那两列的数据,可以试试ORACLE DEVELOPER或者TOAD

补充回答:
请这位老兄耐心着点,
1. 如果和你同系统(目测是WIN7?)同版本PLSQL人家可以你不可以,rpwt不解释
2. 如果有不同,那只能用替换法,ORACLE DEVELOPER你试过没有?换OS你试过没有?
你是想访问数据,还是为PLSQL做测试?如果是前者,试试第2种办法有何不可
3. 如果是后者,看看事件管理器,(开始->运行->eventvwr),找找应用程序项下有没有和plsql相关的;还没有线索,可以和plsql developer的官方支持联系,见我后面参考资料的连接
最后说一下,做技术的,愿意钻研,求甚果是好事,但过度就是钻牛角尖。
还是找专业的人做专业的事

参考资料:http://www.allroundautomations.com/plsqldev.html

参考技术A 主要检查一下本地的环境,oracle的客户端,还有就是操作系统是32位还是64位,最后查查是不是oracle的bug来自:求助得到的回答 参考技术A 启动plsql时,右键--以管理身份运行 参考技术B 你的账号是不是没有权限查看那2个字段的数据,而数据库又不返回提示造成的吧

oracle中怎么用sql查表以及表的字段名

1、用sql查表
查表的时候需要用到user_tables、all_tables,user_tables查出来的是该用户拥有的表,all_tables查出来的是所有用户的表。
2、用sql查表的字段
查表的字段需要用到user_tab_columns、all_tab_columns,一样的前者只能查到该用户拥有的表,后者可以查询所有用户的表。
3、其他
与上面类似的还有查询对象(user_objects、all_objects)、索引(user_indexes、all_indexes)、约束(user_constraints、all_constraints)等。
至于到底怎么查,先用select * from XXX查看表的信息,然后看下就知道了。比如查一个system表dba_data_files的字段,可以用select * from all_tab_columns where table_name = \'DBA_DATA_FILES\',注意表名大写。
2014-11-04补充:
下列列出一些比较重要的数据字典:

DBA_TABLES:描述数据库中所有相关的表。

DBA_ALL_TABLES:描述数据库中所有的对象以及相关的表。

USER_TABLES:描述数据库中当前用户拥有的相关的表。

USER_ALL_TABLES:描述数据库中当前用户拥有的对象以及相关的表。
ALL_TABLES:描述数据库中所有的用户可以访问的相关的表。

ALL_ALL_TABLES:描述数据库中所有的用户可以访问的对象以及相关的表。

DBA_TAB_COLUMNS:描述数据库中所有表的列属性。
USER_TAB_COLUMNS:描述数据库中当前用户拥有的表的列属性。

ALL_TAB_COLUMNS:描述数据库中所有用户可以访问的表的列属性。
DBA_CONSTRAINTS:描述数据库中所有表的约束和属性。
DBA_CONS_COLUMNS:包含在DBA_CONSTRAINTS约束定义中的可访问的列的信息。

ALL_CONSTRAINTS:描述数据库中所有用户可以访问的表的约束和属性。

ALL_CONS_COLUMNS:包含在ALL_CONSTRAINTS约束定义的可访问的列的信息。

USER_CONSTRAINTS:描述数据库中所有当前用户拥有的表的约束的属性。

USER_CONS_COLUMNS:包含在USER_CONSTRAINTS约束定义的可访问的列的信息。

DBA_SEQUENCES:数据库中所有序列的描述。

ALL_SEQUENCES:描述数据库中所有用户可以访问的序列的描述。

USER_SEQUENCES:描述数据库中所有当前用户拥有的序列的描述。

DBA_INDEXES:描述数据库中所有的索引的属性。

ALL_INDEXES:描述数据库中所有用户可以访问的索引的属性。

USER_INDEXES:描述数据库中所有当前用户拥有的索引的属性。
参考技术A SELECT * FROM DBA_TAB_COLUMNS WHERE TABLE_NAME = 'STUDENT'

以上是关于用PLSQL查询oracle数据库中某个表,查询结果如果包含两个字段时就会卡死的主要内容,如果未能解决你的问题,请参考以下文章

怎样在plsql查询数据库的表

oracle sql developer 能否直接修改sql查询出的数据?

Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户

oracle数据库中存储过程plsql能查但java查询不到,其他表查询都可以,而且上周该存储过程也是可以的。

用oracle如何查询出一个表中的一个字段内容包含另一个表中的某个字段的值呢

怎么在oracle数据库中查询某个值在哪个表中?