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

Llamar a secuencia Oracle desde PHP. (Dice que no existe)

Estas en el tema de Llamar a secuencia Oracle desde PHP. (Dice que no existe) en el foro de Programación General en Foros del Web. Muy buenas tardes a todos, Escribo por aqui ya que llevo horas buscando en internet, en ingles y español y nada que doy que alguna ...
  #1 (permalink)  
Antiguo 30/09/2013, 16:01
 
Fecha de Ingreso: noviembre-2005
Ubicación: Caracas York City
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Llamar a secuencia Oracle desde PHP. (Dice que no existe)

Muy buenas tardes a todos,

Escribo por aqui ya que llevo horas buscando en internet, en ingles y español y nada que doy que alguna solucion posible a este problema.

Resulta que estoy trabajando una aplicacion de nomina desde PHP, cuya base de datos esta en Oracle (desconozco la version). Por ser de nomina el DBA me creo una vista con los datos que necesito mostrar (solo lectura) y una tabla para poder hacer unas validaciones en mi aplicacion (en esa si puedo escribir).

Explicado esto mi problema esta en que necesito la columna ID en AU y para ello el DBA me creó una secuencia (llamada SEC_CONSTANCIAS, por ejemplo)... Desde el manejador que uso (NAVICAT) realizo un Insert y lo hace perfecto, con la columna ID y su valor autoincremental enviando en VALUES sec_constancias.nextval. Todo perfecto hasta aqui, ya he realizado un monton de pruebas. El detalle esta que cuando intento hacerlo desde PHP, activo el debug y me dice que la secuencia no existe lo raro es que copio la misma sentencia que el debug me responde y la pego en navicat y ejecuta el INSERT sin error alguno.

Alguno le ha pasado algo parecido? O alguno ve el error que yo no. Copio y pego lo que estoy haciendo...


Para comezar estoy usando ADOBD para la conexion con ORACLE

Este es el query de prueba que si se ejecuta en NAVICAT

Código:
INSERT INTO PERSONAL.CONTROL_CONSTANCIAS (ID,CEDULA,CODE_CONS,FECHA_ULTIMA) VALUES (sec_constancias.nextval, 17855837, 'ABC123', '03/Jan/2013')
En la tabla PERSONAL hay 4 campos ID number, CEDULA number, CODE varchar y por ultima la fecha DATE.

mmm.. que me falta??

Ahhh... claro, lo que estoy ejecutando en el PHP.

Código:
$query_control = " INSERT INTO PERSONAL.CONTROL_CONSTANCIAS (ID,CEDULA,CODE_CONS,FECHA_ULTIMA) VALUES (sec_constancias.nextval, 17855837, 'ABC123', '03/Jan/2013') 	";
$db->Execute($query_control);
Finalmente.. me regresa esto el debug
ORA-02289: no existe la secuencia in bla/bla/bla/bla.php

No tengo permisos en la BD, por lo que editarla o parecido no podré, a menos que espere el dia que "el consultor" (DBA) venga de nuevo, y ese señor viene 1 dia a la semana

Muchisimas gracias a cualquier que pueda ayudarme... Saludos
  #2 (permalink)  
Antiguo 30/09/2013, 16:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Llamar a secuencia Oracle desde PHP. (Dice que no existe)

Es un tema de permisos.
Oracle es muy estricto para el acceso a los objetos. Pidele al DBA que te de los permisos para acceder a esos objetos para el usuario que usas desde PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/10/2013, 07:12
 
Fecha de Ingreso: noviembre-2005
Ubicación: Caracas York City
Mensajes: 3
Antigüedad: 19 años
Puntos: 0
Respuesta: Llamar a secuencia Oracle desde PHP. (Dice que no existe)

Si claro, es que eso pense... El detalle es que uso el mismo usuario y tipo de conexion (TNS) tanto en NAVICAT como en PHP... Es decir, para efectos del Oracle, el mismo usuario esta haciendo persistencia en la BD, independientemente el manejador que este usando, sea PHP o sea NAVICAT o algun cliente standalone de base de datos.

Lo que estoy pensando es que en PHP exista alguna forma "distinta" de llamar a la secuencia cuando haces el query que no la se o no la estoy consiguiendo porque hasta donde he visto en los demas foros y la propia documentacion de Oracle se hace exactamente des la misma forma que estoy haciendo.

=(

BTW... Esto creo que deberia ir en Oracle o en PHP... no se porque lo puse en Programacion General, disculpa a los admins.
  #4 (permalink)  
Antiguo 01/10/2013, 07:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Llamar a secuencia Oracle desde PHP. (Dice que no existe)

Yo trabajo en un proyecto que usa Oracle, y con muchos asuntos de usuarios, y por mi experiencia te comento que incluso usando un mismo usuario, desde diferentes aplicativos, puedes no tener acceso a los mismos recursos.
En otras palabras... consulta con tu DBA, porque es posible que deba darles permisos especiales para ser usados desde la aplicación, que no serán los mismos que para interactuar en consola, o Navicat.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: aplicacion, oracle, php, secuencia
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 16:12.