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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage