Bonjour,
Par nécessité, je dois réécrire un vieux code VBA qui fonctionne très bien en Python.
Il s'agit de récupérer des données SAP R3 et des les charger dans une DB.
Les données sont récupérés par paquet de 200k lignes.
On boucle ensuite sur ces lignes pour les insérer avec un "Insert into tbl select Va1 union all Select Val2 ...
pSAP_Data est l'objet renvoyé par SAP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for iSAP in range(1,iLng_Lignes + 1): iStrTemp = str(pSAP_Data(iSAP, "WA")).replace("'", "''") iStrSQLValues = iStr_SQLValues + " select '" + iStr_Temp + "' union all " iInt_NbLignesRAW = iInt_NbLignesRAW + 1 iInt_NbLignesTemp = iInt_NbLignesTemp + 1 if iInt_NbLignesRAW == 1000: #=> insert iInt_NbLignesRAW = 0 iStrSQLValues =""
Tout cela est fait dans une fonction à laquelle est passée pSAP_Data
Le problème est que lors du "iStrSQLValues = iStr_SQLValues + " select '" + iStr_Temp + "' union all "", la mémoire occupée augmente et n'est jamais libérée et donc forcément, ça finit par planter.
Quelqu'un aurait-il une idée pour résoudre le pb ?
Merci.
Partager