trimestre trabajo tercer semanas primeras lumbar espalda embarazo dolor cuidado como baja alta aliviar oracle oracle10g ora-00904

oracle - trabajo - ¿Por qué tengo ORA-00904 incluso cuando la columna está presente?



dolor de espalda en el embarazo tercer trimestre (9)

Veo un error al ejecutar la consulta de hibernate sql.

java.sql.SQLException: ORA-00904: "table_name". "column_name": identificador no válido

Cuando abro la tabla en sqldeveloper, la columna está presente.

El error solo está ocurriendo en PROD, no en DEV.

¿Qué debo comprobar?


¿Has comparado las definiciones de tabla en Prod y Dev?

Y cuando lo está ejecutando en SQL Developer, ¿está ejecutando la consulta en Prod (la misma base de datos que la aplicación) y con el mismo usuario?

Si hay algunas columnas adicionales que está agregando (utilizando un comando de modificación) y estos cambios aún no se han promocionado a prod, este problema es posible.

¿Puede publicar la definición de la tabla y su consulta real?


Escriba el nombre de la columna entre comillas DOBLES como en "columnName".

Si el mensaje de error muestra un caso de carácter diferente al que escribió, es muy probable que su cliente SQL realice una conversión automática de casos para usted. Use comillas dobles para evitar eso. (Esto funciona en Squirrell Client 3.0).


Esto me sucedió cuando accidentalmente definí dos entidades con la misma tabla de base de datos persistente. En una de las tablas existía la columna en cuestión, en la otra no. Al intentar persistir un objeto (del tipo que se refiere a la tabla de base de datos subyacente incorrecta), se produjo este error.


Oracle lanzará ORA-00904 si el usuario en ejecución no tiene los permisos adecuados sobre los objetos involucrados en la consulta.


Podría ser un problema de sensibilidad a los casos. Normalmente, las tablas y columnas no distinguen entre mayúsculas y minúsculas, pero lo serán si usa comillas. Por ejemplo:

create table bad_design("goodLuckSelectingThisColumn" number);


Se debe a que uno de los DB con los que se creó la columna "hace que su nombre sea sensible a mayúsculas y minúsculas.

Nombre de la columna de la tabla de Oracle: GoodRec Hive no puede reconocer la distinción entre mayúsculas y minúsculas: ERROR arrojado fue - Causado por: java.sql.SQLSyntaxErrorException: ORA-00904: "GOODREC": identificador no válido

Solución: Cambiar el nombre de la columna de Oracle a mayúsculas.


Utilizo Toad para Oracle y si la tabla pertenece a otro nombre de usuario distinto del que inició sesión y tiene acceso para leer la tabla, es posible que deba agregar el propietario de la tabla original al nombre de la tabla.

Por ejemplo, digamos que el nombre del propietario de la tabla es ''OWNER1'' y que ha iniciado sesión como ''USER1''. Esta consulta le puede dar un error ORA-00904:

select * from table_name where x=''test'';

El prefijo de table_name con el propietario de la tabla eliminó el error y da resultados:

select * from


Verifique la credencial de nombre de usuario utilizada para iniciar sesión en la base de datos. (persistencia.xml ??). El problema principal es que el nombre de usuario / contraseña utilizado para iniciar sesión en la base de datos no tiene visibilidad para el objeto (nombre_tabla en este caso). (intente iniciar sesión en el desarrollador de SQL, utilizando el mismo nombre de usuario / contraseña disponible en su fuente de datos)


verifique la posición de la anotación de columna en la clase java para el campo Por ejemplo, considere una tabla con el nombre ESTUDIANTE con 3 columnas (Nombre, Roll_No, Marcas).

Luego asegúrese de haber agregado la anotación de la columna anterior al método Getter en lugar del método Setter. Resolverá tu problema @ Columna (nombre = "Nombre", longitud = 100)

**@Column(name = "NAME", length = 100) public String getName() {** return name; } public void setName(String name) { this.name= name; }