Variabiliser le sch�ma � l'ex�cution de requ�te SQL

RPG (3 et 4, free), CL, SQL, etc...
Répondre
David
Messages : 2
Enregistré le : mer. 04 déc. 2019, 15:36:57

Variabiliser le sch�ma � l'ex�cution de requ�te SQL

Message par David »

Bonjour,

Je voudrais dans un free RPG exécuter une requête SQL sur un fichier se trouvant dans 2 bibliothèques (bibliothèque de production et bibliothèque de sauvegarde).
Je veux intervenir sur le fichier se trouvant dans la bibliothèque de sauvegarde (derrière la bibliothèque de production dans *LIBL).

Je récupère le nom de mes bibliothèques dans une Data Area.

J'ai essayé via cette méthode mais ça ne fonctionne pas (la requête s'exécute sur le fichier se trouvant dans la bibliothèque de production) :

dcl-ds *n dtaara(*auto);
Liste_Bib char(1024);
end-ds;

dcl-s Bib_Prod char(10);
dcl-s Bib_SAVDTA char(10);

Bib_Prod = %subst(Liste_Bib:350:10);
Bib_SAVDTA = %subst(Liste_Bib:370:10);

exec sql
set current schema = :Bib_SAVDTA;

exec sql
set path = :Bib_SAVDTA, current path;

EXEC SQL
delete
from COMMANDE
where timestampdiff(256,
cast(current_timestamp -
cast(date(case when BCALIV < 75 then '20' else '19' end
|| digits(BCALIV) || '-' || digits(BCMLIV) || '-' || digits(BCJLIV)
) as timestamp) as char(22)) ) > 5;


Ma demande est-elle réalisable ?

Merci d'avance

BrigitteG
Messages : 111
Enregistré le : jeu. 20 sept. 2012, 08:56:38

Construire la requ�te

Message par BrigitteG »

Bonjour,

Peut-être une piste

Ci-joint un exemple avec update ait dans un pgm

File1 = %trim(E_Bib)+ '/' + %trim(wTABLE_NAME);
Requete = *blanks;
Requete = 'update ' +
%trim(File3) +
' set LAST = '' '' where LAST = ''O'' and NUMFAC = '
+ %trim(E_NumFAC);
exec sql
execute immediate :requete;

Cordialement

David
Messages : 2
Enregistré le : mer. 04 déc. 2019, 15:36:57

(sans sujet)

Message par David »

Merci beaucoup.

Répondre