comment appeler la procédure avec un paramètre de sortie comme type de table à partir d'une classe java
Je veux appeler cette procédure get_data_Q1
dans le package ult_pkg
de Java code et d'afficher les mettre,
quelqu'un peut-il m'aider.
Merci à l'avance.
CREATE OR REPLACE PACKAGE ult_pkg
AS
TYPE t_all_record is record (
x_object_type_id number,
x_object_name varchar2(100),
x_object_id varchar2(70),
x_audit_timestamp timestamp(6),
x_payload clob
);
--table type to hold table data after querying
type tt_all_tab is table of t_all_record index by binary_integer;
--declaration pocedures
procedure get_data_Q1(x_object_id in varchar2 , x_all_type out tt_all_tab );
end ult_pkg;
/
--corps de " ult_pkg paquet
de créer ou de remplacer le corps de package ult_pkg
COMME
--procedure taking 'object_id' as input parameter and gives out table of 't_all_record' type
procedure get_data_Q1(x_object_id in varchar2 , x_all_type out tt_all_tab )
AS
i number:=0;
begin
for r in
(
SELECT
O.object_type_id,O.object_name,O.object_id,A.audit_timestamp,P.payload
FROM
APPLICATION APP, EXCEPTIONS E,MASTER_AUDIT A,MODULE_TYPE M,OBJECT_TYPE O,PAYLOAD P
WHERE
( A.MODULE_TYPE_ID = M.MODULE_TYPE_ID ) AND ( M.APPLICATION_ID = APP.APPLICATION_ID ) AND ( A.OBJECT_TYPE_ID = O.OBJECT_TYPE_ID ) AND ( O.OBJECT_ID = x_object_id )
)
-- loop to asign the data from cursor 'r' to carasponding table type columns
loop
x_all_type(i).x_object_type_id:=r.object_type_id;
x_all_type(i).x_object_name:=r.object_name;
x_all_type(i).x_object_id:=r.object_id;
x_all_type(i).x_audit_timestamp:=r.audit_timestamp;
x_all_type(i).x_payload:=r.payload;
i:=i+1;
end loop;
end get_data_Q1;
fin ult_pkg;
/
Vous devez vous connecter pour publier un commentaire.
Cela n'est pas possible, voir Accès PL/SQL Index-par des Tables:
Je serais probablement utiliser un custom (global, pas de package) type d'objet comme suit:
de référence la table de type dans votre forfait (t_all_records au lieu de tt_all_tab) et de le remplir comme
Résultat sera utilisable à partir de java comme suit:
Mais en fin de compte, on peut se demander si cela en vaut la peine quand vous pourriez utiliser votre requête dans une plaine instruction sql d'une requête préparée...