Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

जावा से पीएल/एसक्यूएल में सरणी कैसे वापस करें?

/* The type has to be SQL type so that it is also visible for Java. */
create or replace type widgets_t is table of varchar2(32767);
/

create or replace and compile java source named "so19ja" as
import java.lang.*;
public class so19ja {
    public static String[] get_widgets_as_array() {
        String[] widgets = new String[]{"foo", "bar", "zoo"};
        return widgets;
    }

    public static java.sql.Array array_wrapper(
        String typeName,
        Object elements
    ) throws java.sql.SQLException {
        oracle.jdbc.OracleDriver ora = new oracle.jdbc.OracleDriver();
        java.sql.Connection conn = ora.defaultConnection();
        oracle.jdbc.OracleConnection oraConn =
            (oracle.jdbc.OracleConnection)conn;
        /* Yeah - typeName have to be UPPERCASE, really. */
        java.sql.Array arr = 
            oraConn.createARRAY(typeName.toUpperCase(), elements);
        return arr;
    }

    public static java.sql.Array get_widgets_as_array_wrapped()
    throws java.sql.SQLException {
        return array_wrapper("widgets_t", get_widgets_as_array());
    }
};
/
show errors java source "so19ja"

create or replace function get_widgets_as_array return widgets_t as
language java name 'so19ja.get_widgets_as_array_wrapped() return java.sql.Array';
/
show errors

declare
  widgets constant widgets_t := get_widgets_as_array;
begin
  for i in widgets.first .. widgets.last loop
    dbms_output.put_line('widgets(' || i || ') = ' || widgets(i));
  end loop;
end;
/

प्रिंट:

widgets(1) = foo
widgets(2) = bar
widgets(3) = zoo

PL/SQL procedure successfully completed.

यह भी देखें:oracle.sql.ARRAY ऑब्जेक्ट कैसे बनाएं?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल में संग्रहित प्रक्रिया से परिणामसेट कैसे लौटाएं?

  2. यदि आप OCI संस्करण Easysoft Oracle ODBC ड्राइवर का उपयोग करते समय साझा ऑब्जेक्ट फ़ाइल त्रुटियों को नहीं खोल सकते हैं तो क्या करें?

  3. ORA-01034:ORACLE उपलब्ध नहीं है ORA-27101:साझा स्मृति क्षेत्र मौजूद नहीं है

  4. SQLcl स्वरूपण विकल्प (ओरेकल)

  5. oracle varchar to number