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

JDBC :pobierz typ tablicy z metadanych

Użyj java.sql.ResultSetMetaData.getColumnTypeName() :

Konfiguracja Oracle :

CREATE OR REPLACE TYPE random_array IS TABLE OF VARCHAR2(42);
/

Jawa :

Class.forName("oracle.jdbc.OracleDriver");

Connection con = DriverManager.getConnection(
    "jdbc:oracle:thin:@localhost:1521:orcl",
    "username",
    "password"
);

PreparedStatement st = con.prepareStatement(
    "SELECT random_array( 'a', 'b', 'c' ) AS array FROM DUAL"
);

ResultSet rs = st.executeQuery();
while( rs.next() )
{
  String type = rs.getMetaData().getColumnTypeName(1);
  String[] data = (String[]) rs.getArray(1).getArray();
  System.out.println( type + ": " + Arrays.toString( data ) );
}

st.close();
con.close();

Wyjście :

SCHEMA_NAME.RANDOM_ARRAY: [a, b, c]

Jeśli chcesz wrócić do Oracle i znaleźć typ elementów kolekcji, których możesz użyć:

SELECT ELEM_TYPE_NAME,
       LENGTH,
       PRECISION,
       SCALE
FROM   ALL_COLL_TYPES
WHERE  TYPE_NAME = 'RANDOM_ARRAY'
AND    OWNER     = 'SCHEMA_NAME';

Które wyjścia:

ELEM_TYPE_NAME LENGTH PRECISION SCALE
-------------- ------ --------- -----
VARCHAR2           42



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź zmienne globalne pakietu ze słownika danych

  2. Jak uzyskać najnowszy rekord pracownika w Oracle?

  3. Konwertuj OracleParameter.Value na Int32

  4. OC4J 10.1.3.3 nie można znaleźć pliku ojms.rar podczas konfigurowania trwałości bazy danych

  5. Gdzie jest plik jar ojdbc?