Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle PL/SQL:Cara mencetak tipe tabel

Oracle memiliki objek tetapi ... berbeda. Tidak yakin dengan pertanyaan Anda apakah Anda ingin melihat nilai properti atau jika Anda ingin benar-benar melihat jenisnya.


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

Sekarang jalankan beberapa kode untuk itu.


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;

Tentu saja Anda dapat membuat metode pada objek untuk mengembalikan informasi untuk Anda dengan sedikit lebih mudah.


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

Anda dapat memanggil fungsi pada objek sekarang membuatnya lebih mudah untuk membaca 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. Bagaimana cara memilih penyedia Oracle untuk aplikasi .Net?

  2. Menghitung kolom non-null dengan cara yang agak aneh

  3. Bagaimana cara mengatasi ORA-00937:bukan fungsi grup grup tunggal saat menghitung persentase?

  4. kerangka kerja entitas .net dengan oracle 11g

  5. Tampilan dan tabel terwujud dengan nama yang sama