Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zdefiniuj typ rekordu w bloku PL/SQL, który odwołuje się do swojej kolekcji

Możesz użyć obiektów zdefiniowanych w zakresie SQL za pomocą dziedziczenia:

Skrzypce SQL

Konfiguracja schematu Oracle 11g R2 :

CREATE TYPE abstract_item IS OBJECT (
  name VARCHAR2(64)
) NOT FINAL NOT INSTANTIABLE
/

CREATE TYPE t_items IS TABLE OF abstract_item
/

CREATE TYPE t_item UNDER abstract_item (
  children t_items
) INSTANTIABLE
/

Zapytanie 1 :

SELECT t_item(
         '1',
         t_items(
           t_item( '1.1', t_items() ),
           t_item(
             '1.2',
             t_items(
               t_item( '1.2.1', null )
             )
           ),
           t_item( '1.3', null )
         )
       )
FROM   DUAL

Wyniki :(SQLFiddle nie wyświetla go ładnie - ale działa bez błędów)

| T_ITEM('1',T_ITEMS(T_ITEM('1.1',T_ITEMS()),T_ITEM('1.2',T_ITEMS(T_ITEM('1.2.1',NULL))),T_ITEM('1.3',NULL))) |
|-------------------------------------------------------------------------------------------------------------|
|                                                                                  [email protected] |

Możesz użyć podobnej deklaracji w PL/SQL:

DECLARE
  items t_item;
BEGIN
  items = t_item( 'Item Name', t_items( /* ... */ ) );
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. Obszar szybkiego odzyskiwania Oracle

  2. Lista rozdzielana przecinkami

  3. Jak zintegrować Oracle i Kafka

  4. PreparedStatement pomyślnie wykonany w Oracle, ale zgłaszający wyjątek w Microsoft SQL

  5. Sprawdź, czy parametr ma wartość NULL w klauzuli WHERE