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

JDBC :dapatkan tipe array dari metadata

Gunakan java.sql.ResultSetMetaData.getColumnTypeName() :

Pengaturan 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();

Keluaran :

SCHEMA_NAME.RANDOM_ARRAY: [a, b, c]

Jika Anda ingin kembali ke Oracle dan menemukan jenis elemen koleksi yang dapat Anda gunakan:

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

Keluaran mana:

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. Cara Menghapus Nol ketika Bagian Integer adalah Nol di Oracle

  2. Karakter khusus Oracle

  3. Permintaan di Oracle untuk menjalankan sum

  4. Bagaimana cara memeriksa apakah file ada di PL/SQL?

  5. Kunci asing mereferensikan tampilan di Oracle