Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2015, 06:09
Avatar de Apolo_13
Apolo_13
 
Fecha de Ingreso: mayo-2015
Mensajes: 40
Antigüedad: 8 años, 10 meses
Puntos: 4
[DUDA] ¿Como sacar un dato de un cursor sin pl/sql?

Hola chic@s.

Creando objetos y referencias en oracle me ha surgido una pequeña duda.

Primero os mostraré mi escenario para que os hagáis una idea.


Código SQL:
Ver original
  1. CREATE OR REPLACE TYPE TipoUsuario AS object (
  2.   usuario varchar2(20),
  3.   fechaAlta DATE
  4. );

Código SQL:
Ver original
  1. CREATE OR REPLACE TYPE TipoTabla AS object (
  2.   tabla varchar2(40),
  3.   tamanio NUMBER(8,2),
  4.   usuario REF TipoUsuario
  5. );

Código SQL:
Ver original
  1. CREATE OR REPLACE TYPE tabla_anidada AS TABLE OF TipoTabla;

Código SQL:
Ver original
  1. CREATE OR REPLACE TYPE TipoTablespace AS object (
  2.   tablespace varchar2(40),
  3.   tablas tabla_anidada,
  4.   member FUNCTION ObtenerTamanio RETURN NUMBER,
  5.   pragma restrict_references(ObtenerTamanio,WNDS)
  6. );

La función del tipo "TipoTablespace" esta declarada correctamente. Aparte que no tiene nada que ver con mi duda.


Bueno...la pregunta es la siguiente. A traves de un simple "SELECT" estoy intentado sacar los datos del cursor de forma individual, pero no encuentro la manera. No puedo utilizar pl/sql.

este es mi select. Y tiene que ser asi, porque para el tablespace de pepe quiero sacar un usuario en concreto de las tablas que tiene el tablespace.

Código SQL:
Ver original
  1. SELECT cursor(SELECT deref(tbs.usuario) FROM TABLE(ts.tablas) tbs)
  2. FROM tablespaces ts WHERE ts.tablespace = 'pepe'
¿alguien sabría sacar un dato en concreto del cursor que tiene esta select sin pl/slq?

La consulta funciona perfectamente, pero como es logico me muestra todos los datos del cursor, y yo solo quiero uno condicionándolo con un where.

Un saludo y gracias de antemano ;)
__________________
¿Buscas respuestas? eemmmmm.....¡Abstrae tu mente!

Última edición por gnzsoloyo; 12/06/2015 a las 14:39