oracle - 在Oracle中如何 "select * from my_table;"返回错误ora-00904?

标签 oracle oracle11g

在 Oracle 11gR2 (v11.2.0.4.0) 中

我有一个简单的表格;

创建表“CLAIMS_PATIENT” (“CLAIMS_PATIENT_ID”编号非空启用, “NAME_LASTNAME”VARCHAR2(60 字节), “NAME_FIRSTNAME”VARCHAR2(35 字节), “NAME_MIDDLENAME”VARCHAR2(25字节), “ADDR_LINE”VARCHAR2(55 字节), “ADDR_CITY”VARCHAR2(30字节), “ADDR_STATE”VARCHAR2(3字节), “ADDR_ZIP”VARCHAR2(15字节), “性别”VARCHAR2(1字节), “出生日期”, “SSN”VARCHAR2(9字节), “MATCH_PID”号, “MATCH_SCORE”数量默认为-1, “MATCH_DATE”日期, “PACS_STATUS”VARCHAR2(1 个字节)默认为 NULL, 约束“CLAIMS_PATIENT_PK”主键(“CLAIMS_PATIENT_ID”) 使用索引 PCTFREE 10 INITRANS 2 MAXTRANS 255 计算统计数据 存储(初始 65536 下一步 1048576 最小扩展 1 最大扩展 2147483645 PCTINCREASE 0 个自由列表 1 个自由列表组 1 BUFFER_POOL 默认 FLASH_CACHE 默认 CELL_FLASH_CACHE 默认) 表空间“MYDATA”启用 ) 立即创建段 PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 无压缩日志记录 存储(初始 65536 下一步 1048576 最小扩展 1 最大扩展 2147483645 PCTINCREASE 0 个自由列表 1 个自由列表组 1 BUFFER_POOL 默认 FLASH_CACHE 默认 CELL_FLASH_CACHE 默认) 表空间“声明”; 我已经填充了一些数据。使用存储过程。现在,当我尝试在 table 上进行任何选择时;

select * from claims_patient;
select count(*) from claims_patient;
select ssn from claims_patient;

它在分号之前的最后一个字符处返回 ora-00904 错误。我使用实时数据库中的 ddl 在测试数据库上创建了这个空表,一切顺利。我尝试过使用 sqldeveloper 和 sqlplus。

此时,我怀疑在我的测试环境中发生了某些崩溃并损坏了表,但我从未在 Oracle 中见过损坏的表,并且自 1995 年以来我一直在使用它。

在我擦掉 table 并重新开始之前,我应该做什么来找出这个问题的根本原因?此时我很好奇,如果我在生产中看到它,了解问题是什么可能会很有用。

根据要求,结果;

select table_name, dump(table_name) from user_tables where table_name like 'CLAIM%ENT'; 是; Typ=1 Len=14: 67,76,65,73,77,83,95,80,65,84,73,69,78,84

最佳答案

嗯,我确实找到了答案。这是在一个不太可能的地方。其中一个索引是基于函数的索引,我没有为其添加 DDL。该功能一夜之间变得无法访问(授权被撤销)。

因此,如果有人找到这个线程并且有一个带有基于函数的索引的表,其中该函数(在构建表和索引之后)变得无法访问、删除、执行权限更改或其他任何情况,您可能会得到一个 ora- 00904 尝试访问表中的任何数据时。

如果 Oracle 能够定义一个更具体的错误来为您指明答案的大致方向,那就太好了。

关于oracle - 在Oracle中如何 "select * from my_table;"返回错误ora-00904?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268095/

相关文章:

mysql - 查询以查找表的行数

使用 Host() 命令的 oracle 过程

java - 使用类似 'Select * from some_table where some condition' 的查询从数据库创建 Pdf

sql - Oracle 中依赖于字段值的约束

oracle - APPROX_COUNT_DISTINCT 如何提供比 Oracle 中的计数函数更好的性能?

database - 什么更好/更快 : joining many tables or select one big table

c# - 使用 fluentmigrator 运行 sql 脚本

c# - 如何从 GridView 中删除时间戳

database - 索引组织表和普通表重建索引有什么区别?

c# - 连接到 Oracle DB 的 Filehelpers 数据链路