Convert a Result Set from SQL Array to Array of Strings
arrays, java, jdbc, postgresql, resultset
Solution
Use:
Array a = rs.getArray("is_nullable");
String[] nullable = (String[])a.getArray();
As explained here
`Array` is SQL type, `getArray()` returns an object to cast to java array.
Problem
I am querying the `information_schema.columns` table in my PostgreSQL database. Using a table name, the result set finds all the column names, type, and whether it is nullable (except for the primary key, 'id'). This is the query being used: ``` SELECT column_name, is_nullable,data_type FROM information_schema.columns WHERE lower(table_name) = lower('TABLE1') AND column_name != 'id' ORDER BY ordinal_position; ``` I have a string array for each of these results and I am trying to use the ResultSet method `getArray(String columnLabel)` to avoid looping through the results. I want to store the returned Arrays in the string arrays, but get a type mismatch error ``` Type mismatch: cannot convert from Array to String[] ``` Is there a way to convert or typecast the SQL Array object to a String[]? Relevant Code: ``` String[] columnName, type, nullable; //Get Field Names, Type, & Nullability String query = "SELECT column_name, is_nullable,data_type FROM information_schema.columns " + "WHERE lower(table_name) = lower('"+tableName+"') AND column_name != 'id' " + "ORDER BY ordinal_position"; try{ ResultSet rs = Query.executeQueryWithRS(c, query); columnName = rs.getArray(rs.getArray("column_name")); type = rs.getArray("data_type"); nullable = rs.getArray("is_nullable"); }catch (Exception e) { e.printStackTrace(); } ```