Ok comme je ne peux pas connaître la définition des colonnes du select , je change mon fusil d'épaule...
J'ai une procédure déclarée comme suit :
1 2 3 4 5 6
| CREATE OR REPLACE PROCEDURE ReportEngineExecute2 (csStatement in varchar2, csSelect out varchar2)
IS
BEGIN
execute immediate csStatement using out csSelect;
END;
/ |
et un appel comme celui-ci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
set serveroutput on;
declare
csSelect varchar2(4000);
csSelectFinal varchar2(4000);
begin
csSelect:=
'declare vch varchar2(500); begin :
vch :=''SELECT USR.NOM AS USR, JOURNAL.DT_MODIFICATION, JOURNAL.MODIFICATION, PERSONNEL.NOM, PERSONNEL.PRENOM, JOURNAL.TYPE'';
IF ''P'' != ''%'' then
vch := vch || '' WHERE JOURNAL.TYPE LIKE ''''P%'''' '';
end if;
vch := vch || '' ORDER BY JOURNAL.DT_MODIFICATION DESC'';
end;'
;
ReportEngineExecute2(csSelect,csSelectFinal);
dbms_output.put_line(csSelectFinal);
end; |
pourquoi le résultat obtenu vaut
SELECT USR.NOM AS USR, JOURNAL.DT_MODIFICATION, JOURNAL.MODIFICATION, PERSONNEL.NOM, PERSONNEL.PRENOM, JOURNAL.TYPE
et non
SELECT USR.NOM AS USR, JOURNAL.DT_MODIFICATION, JOURNAL.MODIFICATION, PERSONNEL.NOM, PERSONNEL.PRENOM, JOURNAL.TYPE WHERE JOURNAL.TYPE LIKE 'P%' ORDER BY JOURNAL.DT_MODIFICATION DESC
Partager