Saltar al contenido

Oracle PL/SQL: cómo imprimir un tipo de tabla

Nuestros investigadores estrellas agotaron sus provisiones de café, en su búsqueda a tiempo completo por la solución, hasta que Sofía halló el hallazgo en Beanstalk así que hoy la comparte con nosotros.

Solución:

Oracle tiene objetos pero es… diferente. No estoy exactamente seguro con su pregunta si desea ver los valores de las propiedades o si realmente desea ver el tipo.


CREATE OR REPLACE TYPE MY_TYPE IS OBJECT ( 
  MyString Varchar(20)
  , counter Number(9) 
);

Ahora ejecute un código para ello.


DECLARE
    myType  MY_TYPE;
BEGIN
  myType := MY_TYPE('ABC123',0);
  -- To see the values reference the properties
  DBMS_OUTPUT.PUT_LINE(myType.mystring);
  -- To see they TYPE of the OBJECT
  DBMS_OUTPUT.PUT_LINE(SYS.ANYDATA.CONVERTOBJECT(myType).getTypeName());
END;

Por supuesto, puede crear métodos en el objeto para devolverle información un poco más fácilmente.


CREATE OR REPLACE TYPE MY_TYPE IS OBJECT ( 
  MyString Varchar(20)
  , counter Number(9)
 , MEMBER FUNCTION getType RETURN VARCHAR2
 , MEMBER FUNCTION toString RETURN VARCHAR2
)
/

CREATE OR REPLACE TYPE BODY MY_TYPE 
AS
  MEMBER FUNCTION getTYPE RETURN VARCHAR2 IS
    BEGIN
      RETURN SYS.ANYDATA.CONVERTOBJECT(SELF).getTypeName();
    END;
  MEMBER FUNCTION toString RETURN VARCHAR2 IS
    BEGIN
      RETURN 'MY_TYPE('||self.mystring||','||self.counter||')';
    END;
END;
/

Puede llamar a las funciones en el objeto ahora hace que sea más fácil de leer.


DECLARE
  mytype    MY_TYPE;
BEGIN
  mytype := MY_TYPE('AGAIN','0');
  DBMS_OUTPUT.PUT_LINE(mytype.toString);
  DBMS_OUTPUT.PUT_LINE(mytype.getType);
END;

dbms_output.put_line(v_temp_tabtype(i).myString);

Calificaciones y comentarios

Si entiendes que ha sido de provecho este artículo, agradeceríamos que lo compartas con más seniors de esta manera contrubuyes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *