sql >> Databáze >  >> RDS >> Oracle

Načte návratové hodnoty pole pl/sql v jazyce Java

S ARRAY jsem to neudělal ale mělo by to fungovat. Nejprve se musíte zaregistrovat out parametr vaší funkce. Takže to může být takhle.

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);
                }
            }
        }

Vyzkoušejte tohoto muže a dejte mi odpověď, ať už ano nebo ne.

UPRAVIT:

Tyto znaky ? představuje jeden parametr, který budete nastavovat (jmenuje se jako parametrizovaný). Takže toto:

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

znamená, že nastavíte své tři parametry (?), prvním parametrem metody je index sloupce a druhým jsou data vašeho konkrétního typu.

ÚPRAVA 2:

Je nám líto, že jsem napsal špatné řešení, které je již aktualizováno, takže nyní zkontrolujte kód a zkuste to.



  1. kde 1=1 výrok

  2. [AKTUALIZOVÁNO 2] Kritické:Office Update přeruší přístup – Dotaz je poškozený

  3. Nejlepší způsob, jak zkrátit řetězec UTF8 na základě délky bajtu

  4. Jak vytvořit seskupenou sestavu pomocí Průvodce sestavou v Accessu 2016