用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类型的。
补充说明一下: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数据库中某个表,查询结果如果包含两个字段时就会卡死的主要内容,如果未能解决你的问题,请参考以下文章
oracle sql developer 能否直接修改sql查询出的数据?
Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户
oracle数据库中存储过程plsql能查但java查询不到,其他表查询都可以,而且上周该存储过程也是可以的。