sql >> Databasteknik >  >> RDS >> Oracle

Hämta pl/sql-arrayreturvärden i java

Jag gjorde inte det med ARRAY men det borde fungera. Först måste du registrera dig out parametern för din funktion. Så det kan vara så här.

private final String PRODECURE_NAME = "{? = call <ProcedureName>(?,?,?)}";

Connection con = null;
CallableStatement cs = null;

       try {
            con = DAOFactory.getDatabaseConnection();
            cs = con.prepareCall(PRODECURE_NAME);
            cs.registerOutParameter(1, java.sql.Types.ARRAY);
            cs.setYourType(2, <yourData>);
            cs.setYourType(3, <yourData>);
            cs.setYourType(4, <yourData>);
            cs.execute();
            Array arr = cs.getArray(1);
            if (arr != null) {
               String[] data = (String[]) arr.getArray();
            }
        } 
        catch (SQLException ex) {
            Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
            try {
                con.rollback();
            }
        }
        finally {
            if (con != null) {
                try {
                    con.close();
                } 
                catch (SQLException ex) {
                    Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }

Prova den här mannen och ge mig sedan om det gör det eller inte.

EDIT:

Dessa röding ? representerar en parameter som du kommer att ställa in (den heter parametriserad). Så detta:

cs.setYourType(2, <yourData>);
cs.setYourType(3, <yourData>);
cs.setYourType(4, <yourData>);

innebär att du ställer in dina tre parametrar (?), den första parametern i metoden är kolumnindex och den andra är du data av din specifika typ.

EDIT 2:

Så ledsen att jag skrev dålig lösning, redan uppdaterad så kontrollera koden nu och prova den.



  1. Hur man använder Bulk Collect-klausul med SELECT INTO-sats i Oracle Database

  2. PostgreSQL CSV-import från kommandoraden

  3. Hur man installerar MariaDB på CentOS 8

  4. SQL Server GUID sorteringsalgoritm. Varför?