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

[SOLUCIONADO] Consulta con uso de variables

Estas en el tema de Consulta con uso de variables en el foro de Oracle en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SET SERVEROUTPUT ON DECLARE   v_usuario VARCHAR ( 10 ) ; BEGIN     SELECT username INTO v_usuario FROM ...
  #1 (permalink)  
Antiguo 29/06/2016, 22:12
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
Pregunta Consulta con uso de variables

Código SQL:
Ver original
  1. SET SERVEROUTPUT ON
  2. DECLARE
  3.   v_usuario VARCHAR(10);
  4. BEGIN
  5.     SELECT username INTO v_usuario FROM dba_users WHERE username=&idusuario;
  6.     DBMS_OUTPUT.PUT_LINE('El user consultado es: '|| v_usuario );
  7. END;

quiero ingresar un valor con &idusuario y que este luego pase a mi variable v_usuario. Finaliza en un mensaje indicando que el usuario consultado es ..



Me arroja el siguiente error:

ORA-06550: line 4, column 66:
PL/SQL: ORA-00904: "CTXSYS": invalid identifier
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:

Última edición por gnzsoloyo; 30/06/2016 a las 05:31
  #2 (permalink)  
Antiguo 30/06/2016, 05:39
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: Consulta con uso de variables

Hola!
Por favor, executa usted
Código SQL:
Ver original
  1. SELECT object_name, object_type, STATUS
  2. FROM dba_objects WHERE owner='CTXSYS' AND STATUS != 'VALID' ORDER BY object_name;
y escribe resultado

Última edición por gnzsoloyo; 30/06/2016 a las 06:58
  #3 (permalink)  
Antiguo 30/06/2016, 07:45
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Consulta con uso de variables

Cita:
Iniciado por AVBorland Ver Mensaje
Hola!
Por favor, executa usted
Código SQL:
Ver original
  1. SELECT object_name, object_type, STATUS
  2. FROM dba_objects WHERE owner='CTXSYS' AND STATUS != 'VALID' ORDER BY object_name;
y escribe resultado
Hola,
Ejecuto su script y el resultado no muestra nada.
  #4 (permalink)  
Antiguo 30/06/2016, 15:44
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: Consulta con uso de variables

Cita:
Iniciado por yuo2 Ver Mensaje
Código SQL:
Ver original
  1. SET SERVEROUTPUT ON
  2. DECLARE
  3.   v_usuario VARCHAR(10);
  4. BEGIN
  5.     SELECT username INTO v_usuario FROM dba_users WHERE username=&idusuario;
  6.     DBMS_OUTPUT.PUT_LINE('El user consultado es: '|| v_usuario );
  7. END;

quiero ingresar un valor con &idusuario y que este luego pase a mi variable v_usuario. Finaliza en un mensaje indicando que el usuario consultado es ..



Me arroja el siguiente error:

ORA-06550: line 4, column 66:
PL/SQL: ORA-00904: "CTXSYS": invalid identifier
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:

Al ser un valor VARCHAR2, se requiere que vaya dentro de ''.
Adicional, debes poner un exception en caso de que no exista el valor. De lo contrario, te saltaría un error NO_DATA_FOUND.

Prueba esto
Código SQL:
Ver original
  1. DECLARE
  2.   v_usuario VARCHAR(10);
  3. BEGIN
  4.     SELECT username INTO v_usuario FROM dba_users WHERE username='&idusuario';
  5.     DBMS_OUTPUT.PUT_LINE('El user consultado es: '|| v_usuario );
  6. EXCEPTION WHEN NO_DATA_FOUND THEN
  7.     DBMS_OUTPUT.PUT_LINE('El user no existe');
  8. END;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 01/07/2016, 02:00
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: Consulta con uso de variables

Cita:
Iniciado por yuo2 Ver Mensaje
Hola,
Ejecuto su script y el resultado no muestra nada.
Hola!
Hmmm...
Tiene usted CTXSYS esquema y objetos de CTXSYS usuario?
Ejecuta
Código SQL:
Ver original
  1. SELECT username FROM dba_users;
  2. SELECT COUNT(*) FROM dba_objects WHERE LOWER(owner) LIKE 'ctx%';

Última edición por AVBorland; 01/07/2016 a las 03:10
  #6 (permalink)  
Antiguo 01/07/2016, 10:03
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
Respuesta: Consulta con uso de variables

Gracias a todos, por sus respuestas. Me ayudo.
Como uds dicen, era un problema de sintaxis y permisos.

Etiquetas: variables
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 21:59.