sql >> Database >  >> RDS >> Oracle

Haal pl/sql-array-retourwaarden op in java

Ik deed dat niet met ARRAY maar het zou moeten werken. Eerst moet u zich out registreren parameter van uw functie. Dus het kan zo zijn.

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

Probeer deze man en geef me dan antwoord of hij het doet of niet.

BEWERKEN:

Deze tekens ? vertegenwoordigt één parameter die u instelt (deze wordt genoemd als geparametriseerd). Dus dit:

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

betekent dat u uw drie parameters instelt (?), de eerste parameter van de methode is de kolomindex en de tweede zijn de gegevens van uw specifieke type.

BEWERK 2:

Het spijt me dat ik een slechte oplossing heb geschreven, al bijgewerkt, dus controleer de code nu en probeer het.



  1. verbinding met MySQL-server verbroken tijdens zoekvraag

  2. MySQL, beter om NULL of lege string in te voegen?

  3. SQL Server-gegevens invoegen in Salesforce.com

  4. SQL Server-databases CPU-gebruiksstatistieken