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

PHP-ORACLE y "MERGE"

Estas en el tema de PHP-ORACLE y "MERGE" en el foro de Oracle en Foros del Web. Buenas tardes estimados foreros, tengo un problemilla con una consulta creada en PHP y ejecutada sobre oracle 9. Disculpen si no va aqui la consulta, ...
  #1 (permalink)  
Antiguo 06/05/2010, 05:48
 
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Pregunta PHP-ORACLE y "MERGE"

Buenas tardes estimados foreros, tengo un problemilla con una consulta creada en PHP y ejecutada sobre oracle 9. Disculpen si no va aqui la consulta, pero no vi seccion de Oracle.
El problema es el siguiente, creo una consulta con PHP y al ejecutarla en oracle me da un error de tipo:

Código HTML:
Ver original
  1. ORA-00904: "DS"."TELEFONO": identificador no válido

Tiene narices, he repasado el codigo 18762 veces, yo y algun compañero mio, y como ninguno vemos el posible error, os dejo aqui el codigo por si algun guru....
Código SQL:
Ver original
  1. MERGE INTO hdimagen ds USING (SELECT '555555555' AS clave FROM dual) b ON (ds.telefono = b.clave) WHEN MATCHED THEN UPDATE SET telefono='555555555' ,fecha_encuesta=to_date ('6 / 5 / 2010','DD/MM/YYYY') ,television='Si' ,conexion='HDMI' ,modovideo='1080i' ,hdmi='Si' ,dif_calidad='No' ,observa='prueba merge' WHEN NOT MATCHED THEN INSERT (telefono ,fecha_encuesta ,television ,conexion ,modovideo ,hdmi ,dif_calidad ,observa) VALUES ('555555555' ,to_date ('6 / 5 / 2010','DD/MM/YYYY') ,'Si' ,'HDMI' ,'1080i' ,'Si' ,'No' ,'prueba merge')

Tenemos otras consultas realizadas con "MERGE" y funcionan correctamente, luego el Oracle nuestro las soporta, ya no se si tirarme al tren o a la taquillera, en fin gracias por aguantarme y si a alguno se os enciende la bombilla, muchas mas gracias.

Saludos cordiales.

P.D. Edito porque ya encontre el subforo de oracle, ruego al admin mueva el post.
Disculpen las molestias y gracias de nuevo.

Última edición por jomiferdo; 06/05/2010 a las 05:51 Razón: encontrado el subforo correcto
  #2 (permalink)  
Antiguo 06/05/2010, 07:20
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: PHP-ORACLE y "MERGE"

http://www.forosdelweb.com/f100/
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 06/05/2010, 08:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Oracle
  #4 (permalink)  
Antiguo 06/05/2010, 09:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: PHP-ORACLE y "MERGE"

El error dice que no encuentra la columna telefono.
Prueba esto:

Código SQL:
Ver original
  1. MERGE INTO
  2. hdimagen ds
  3. USING
  4. (SELECT '555555555' AS clave FROM dual) b
  5. ON (ds.telefono = b.clave)
  6.  WHEN MATCHED THEN
  7. UPDATE SET ds.telefono='555555555' ,
  8. ds.fecha_encuesta=to_date ('6 / 5 / 2010','DD/MM/YYYY') ,
  9. ds.television='Si' ,
  10. ds.conexion='HDMI' ,
  11. ds.modovideo='1080i' ,
  12. ds.hdmi='Si' ,
  13. ds.dif_calidad='No' ,
  14. ds.observa='prueba merge'
  15. WHEN NOT MATCHED THEN
  16. INSERT (ds.telefono ,ds.fecha_encuesta ,ds.television ,ds.conexion ,
  17. ds.modovideo ,ds.hdmi ,ds.dif_calidad ,ds.observa)
  18. VALUES ('555555555' ,to_date ('6 / 5 / 2010','DD/MM/YYYY') ,'Si' ,
  19. 'HDMI' ,'1080i' ,'Si' ,'No' ,'prueba merge')

Cuando haces un describe de la tabla hdimagen como aparecen los nombres de los campos?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 06/05/2010, 09:36
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: PHP-ORACLE y "MERGE"

Hola, buen día


Ese mensaje lo que quiere decir es que el nombre de la columna en la tabla no existe, deberias de revisar si ese es el nombre con que aparece en la tabla.

Si utilizas el SQL plus realiza un desc hdimagen; si utilizas algun programa tipo toad, simplemente haz click con el boton derecho y dale describe.

Scooby
  #6 (permalink)  
Antiguo 06/05/2010, 09:38
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: PHP-ORACLE y "MERGE"

huesos52, veo que me contestaste primero por minutos...

Scooby
  #7 (permalink)  
Antiguo 06/05/2010, 23:50
 
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: PHP-ORACLE y "MERGE"

Bueno, algunas veces no hay nada como un buen descanso, jajajaja, hoy viendo el codigo, he dado con el error. Tengo que decir, que no os dije (perdon se me escapo) que el campo telefono es el indice de la tabla, con lo cual lo que me indica el error es que no puede updatear el propio indice, me explico.

Código SQL:
Ver original
  1. Código SQL: Ver originalCopiar
  2. MERGE INTO
  3. hdimagen ds
  4. USING
  5. (SELECT '555555555' AS clave FROM dual) b
  6. ON (ds.telefono = b.clave)
  7. WHEN MATCHED THEN UPDATE
  8. SET ***ds.telefono='555555555' ***, he quitado lo que hay entre los asteriscos
  9. fecha_encuesta=to_date ('6 / 5 / 2010','DD/MM/YYYY') ,
  10. television='Si' ,
  11. conexion='HDMI' ,
  12. modovideo='1080i' ,
  13. hdmi='Si' ,
  14. dif_calidad='No' ,
  15. observa='prueba merge'
  16. WHEN NOT MATCHED THEN INSERT (telefono ,fecha_encuesta ,television ,conexion ,modovideo ,hdmi ,dif_calidad ,observa)
  17. VALUES to_date ('6 / 5 / 2010','DD/MM/YYYY') ,'Si' ,'HDMI' ,'1080i' ,'Si' ,'No' ,'prueba merge')

Como veis, he quitado el SET del campo Telefono, ya que este es el indice y no puede ni updatearlo ni insertarlo, y a partir de ahi esta funcionando correctamente.

Muchas gracias por vuestro tiempo y apoyo.

Saludos.
  #8 (permalink)  
Antiguo 07/05/2010, 06:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: PHP-ORACLE y "MERGE"

Cita:
Bueno, algunas veces no hay nada como un buen descanso, jajajaja, hoy viendo el codigo, he dado con el error.
Me ha pasado muchas veces
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: Ninguno
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 19:05.