So rufen Sie eine Prozedur mit assoziativen Arrays in Oracle von Java aus auf
Ich habe eine gespeicherte Prozedur, die so aussieht:
TYPE ref_cursor IS REF CURSOR;
TYPE parametro IS RECORD (
nombre VARCHAR2(50), -- I want to remove this value and make it the key of the table instead.
valor VARCHAR2(32000),
tipo VARCHAR2(1),
sentencia VARCHAR2(32000)
);
TYPE parametros IS TABLE OF parametro INDEX BY VARCHAR2(50);
PROCEDURE build_cursor (
params IN parametros
results OUT ref_cursor
);
Und von der Prozedur build_cursor aus möchte ich über ihren Schlüssel auf den Inhalt der Tabelle zugreifen können.
parametros('key');
Ich weiß jedoch nicht, wie man ein assoziatives Array aus Java erstellt. Ich habe nur Beispiele für einfache Arrays gesehen, d.h.TYPE parametros IS TABLE OF parametro;
Wie kann ich die anrufen?build_cursor
Verfahren von Java?
Ich lese das:Wie kann man eine gespeicherte Oracle-Prozedur aufrufen, die einen benutzerdefinierten Typ in Java enthält? Ich weiß jedoch nicht, welche Änderungen ich an seinem Java-Beispiel vornehmen muss, um das assoziative Array zu erstellen.Wo lege ich den Schlüssel des aktuellen Elements ab?
Dies ist ein funktionierender Test von Oracle.
params('key').nombre := 'key'; -- I want this to be removed because it's the key.
params('key').valor := 'Roger';
params('key').tipo := 'V';
params('key').sentencia := 'Something';
-- Call the procedure
pk_sql_utils.build_cursor(
params => params,
results => :results
);