sql >> Database teknologi >  >> RDS >> Oracle

Kaldning af en Oracle PL/SQL-procedure med Custom Object-returtyper fra 0jdbc6 JDBCthin-drivere

Jeg fandt endelig (med lidt hjælp fra andre) svaret på dette. Den kom i tre dele:

Den første var, at jeg skulle bruge et:

OracleCallableStatement stmt = (OracleCallableStatement) conn.prepareCall(query);

snarere end det simple JDBC CallableStatement, jeg havde prøvet at bruge.

Den anden del var, at jeg skulle registrere min "ud" parameter som følger:

stmt.registerOutParameter(2, OracleTypes.STRUCT, "DATA_SUMMARY_TAB");

Den tredje del, og den er implicit i del 2 ovenfor, var, at "DATA_SUMMARY_TAB" skulle stå med STORE BOGSTAVER. Hvis du sætter det med små bogstaver, får du en kryptisk fejlmeddelelse som følger:

java.sql.SQLException: invalid name pattern: MYTEST.data_summary_tab

at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:553)at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:469)at oracle.sql.StructDescriptor.StrinitPickler(.StrucvaPickor) oracle.sql.StructDescriptor.(StructDescriptor.java:320)

Det var det.

Bemærk også, at vores tilpassede objekttype ikke var i nogen pakker. Hvis det er det, skal du muligvis hacke den tredje parameter lidt.



  1. Postgres jsonb indlejret array tilføj

  2. Tilføjelse af nulværdiposter i en forespørgsel ved hjælp af kumulative analytiske funktioner

  3. vælg alle poster, der er oprettet inden for timen

  4. [Video] Ansible og PostgreSQL