Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pobierz wartości zwracane z tablicy pl/sql w java

Nie zrobiłem tego za pomocą ARRAY ale powinno działać. Najpierw musisz zarejestrować out parametr Twojej funkcji. Więc może być tak.

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

Wypróbuj tego człowieka i daj mi odpowiedź, czy to zrobi, czy nie.

EDYTUJ:

Te znaki ? reprezentuje jeden parametr, który ustawisz (jest nazwany jako sparametryzowany). Więc to:

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

oznacza, że ​​ustawiasz swoje trzy parametry (?), pierwszym parametrem metody jest indeks kolumny, a drugim są dane określonego typu.

EDYCJA 2:

Przepraszam, że napisałem złe rozwiązanie, już zaktualizowane, więc sprawdź teraz kod i wypróbuj.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie tekstu w procedurach składowanych Oracle

  2. Sekwencja partycjonowana Oracle

  3. CriteriaQuery filtr miesiąca i roku

  4. 12c Zmiany DBA_USERS

  5. Pobieranie zrzutu tabel w oracle 10g przy użyciu procedury PL/SQL