Com­ment créer une t…
 
Notifications 
Reti­rer tout

Com­ment créer une table tem­po­raire en sql et la rem­pla­cer si elle existe déjà

Posts
Uti­li­sa­teurs
Likes
90  Vu
0
Début du sujet

Bon­jour, je sou­haite créer grâce à SQL dans un pro­gramme RPG une table tem­po­raire (dans QTEMP) et écra­ser une éven­tuelle table pré­exis­tante de même nom. Sa des­crip­tion pour­ra soit être celle d’une table per­ma­nente, soit être défi­nie entiè­re­ment. Quelle ins­truc­tion puis-je utiliser ?

Éti­quettes du sujet
2 Réponses 
0
Début du sujet

Il est éga­le­ment pos­sible de défi­nir cette table tem­po­raire comme le résul­tat d’un SELECT. Dans ce cas elle pour­ra être peu­plée (WITH DATA) ou pas (WITH NO DATA) :

DECLARE GLOBAL TEMPORARY TABLE CORR_SAP_AGCEXP AS (
 
select
 sap.cscom1 as cag­sap,
 substr(sap.csccod, 1, 1) as CSOCTE,
 substr(sap.csccod, 2, 2) as CAGCOM,
 bn.csccod as CAGEXP

from
 bfbase.satabp as sap
 inner join bfbase.bntabp as bn
 on bn.cscom2 = substr(sap.csccod, 1, 1) and bn.cscom1 = substr(sap.csccod, 2, 2)

where
 sap.cscprm = ‘SLOFF’
 and bn.cscprm = ‘AGCOR’
 
order by
 sap.cscom1)
 
with DATA WITH REPLACE ; 

0
Début du sujet

L’ins­truc­tion sql « declare glo­bal tem­po­ra­ry table » peut être embar­quée dans un pro­gramme sqlrpgle.

Sa forme peut être si on a un modèle :

declare global temporary table w_bcpasp like bcpasp with replace;

Si on n’a pas de modèle :

declare global temporary table W_TABLE (    
ZONE1 CHAR(10) ,                            
ZONE2 CHAR(10) ,                            
ZONE3 CHAR(6)  ,                            
ZONE4 CHAR(10) ) with replace
Share :