Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

select + where + ORA-00904

Estas en el tema de select + where + ORA-00904 en el foro de Oracle en Foros del Web. disculpen, pero al no saber y que no me saliera, pero ahora me manda un error, ya que es harto para mi, ya que antes ...
  #1 (permalink)  
Antiguo 12/07/2006, 15:35
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 7 meses
Puntos: 7
select + where + ORA-00904

disculpen, pero al no saber y que no me saliera, pero ahora me manda un error, ya que es harto para mi, ya que antes no salia nada, el error que me sale es

SELECT * FROM USUARIO WHERE USUARIO ="PEPE"

ORA-00904: "PEPE": invalid identifier
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #2 (permalink)  
Antiguo 12/07/2006, 15:40
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 7 meses
Puntos: 3
Hola, usa comilla simple
Código:
SELECT * FROM USUARIO WHERE USUARIO ='PEPE'
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 14/07/2006, 18:47
Avatar de Worp9975  
Fecha de Ingreso: mayo-2006
Ubicación: LV-426
Mensajes: 203
Antigüedad: 18 años, 5 meses
Puntos: 1
Las comillas dobles "" se utilizan en oracle para identificar (de ahí lo de identificador) literalemente el nombre de un objeto

por ejemplo:

Código:
SQL> CREATE TABLE "PePe" (
   id number(8) ,
   txt varchar2(100) 
) ;
Puedo ver lo que tiene con :

Código:
 SELECT * FROM PePe ;
Pero si escribo

Código:
SELECT * FROM PEPE ;
me dirá que la tabla no existe. Las "" nos sirven para que Oracle guarde en el diccionario de datos el nombre de la tabla respetando el CASE (mayúsc-minúsc) . Por lo que nunca se deben usar las comillas dobles para identificar objetos .

Salu2
__________________
Time is the fire in which we burn
  #4 (permalink)  
Antiguo 27/07/2008, 18:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 10 meses
Puntos: 0
Exclamación Respuesta: select + where + ORA-00904

Cita:
Iniciado por Worp9975 Ver Mensaje
Las comillas dobles "" se utilizan en oracle para identificar (de ahí lo de identificador) literalemente el nombre de un objeto

por ejemplo:

Código:
SQL> CREATE TABLE "PePe" (
   id number(8) ,
   txt varchar2(100) 
) ;
Puedo ver lo que tiene con :

Código:
 SELECT * FROM PePe ;
Pero si escribo

Código:
SELECT * FROM PEPE ;
me dirá que la tabla no existe. Las "" nos sirven para que Oracle guarde en el diccionario de datos el nombre de la tabla respetando el CASE (mayúsc-minúsc) . Por lo que nunca se deben usar las comillas dobles para identificar objetos .

Salu2
Hola amigos soy nuevo en oracle y a mi me pasa lo contrario...
tengo la consulta

select * from tb_tabla where cod='2323232'

y me da el error
ORA-00904: "COD": identificador no valido y ese campo existe

pero si pongo

select * from tb_tabla where "cod"='2323232' si funciona

como hago para que no me toque poner el nombre del campo entre " "
en la consola web de oracle tambien pasa lo mismo y en la consola DOS =

primero no me reconocia la tabla entonces cree un sinonimo publico pero ahora me pasa este error

tengo instalado de forma local Oracle 10g Express y Wamp 5

muchas garcias por su ayuda
  #5 (permalink)  
Antiguo 28/07/2008, 08:13
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: select + where + ORA-00904

Hola,

La respuesta ya esta dada en el post de Worp9975, el problema esta en la creacion de la tabla, si defines un nombre, ya sea de tabla o de columna, entre comillas dobles, entonces sera case-sensitive.

La forma facil de solucionar esto es renombrar la columna, por ejemplo.

Código:
oracle@10G> create table t1 (id number, "DatA" varchar2(30));

Tabla creada.

oracle@10G> select id, data from t1;
select id, data from t1
           *
ERROR en lÝnea 1:
ORA-00904: "DATA": identificador no vßlido

oracle@10G> alter table t1 rename column "DatA" to data;

Tabla modificada.

oracle@10G> select id, data from t1;

ninguna fila seleccionada

oracle@10G>
Saludos
  #6 (permalink)  
Antiguo 28/07/2008, 19:27
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Respuesta: select + where + ORA-00904

Matanga...

Muchas gracias. su ejemplo me fue de mucha ayuda....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:52.