Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle PL/SQL:Как да отпечатате тип таблица

Oracle има обекти, но е ... различен. Не съм съвсем сигурен с въпроса ви дали искате да видите стойностите на свойствата или наистина искате да видите типа.


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

Сега изпълнете някакъв код за него.


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;

Разбира се, можете да създадете методи за обекта, за да връщате информация за вас малко по-лесно.


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;
/

Можете да извиквате функциите на обекта, което го прави по-лесно за четене imo.


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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изчисляване на часовете въз основа на работното време в Oracle SQL

  2. Въпрос за присъединяване към SQL

  3. oracledb верижно sql повикване с помощта на обещания

  4. Как мога да ускоря row_number в Oracle?

  5. Oracle Apex:Създайте лента за напредък, когато чакате резултат