Je kunt iets veel eenvoudigers doen dat ook aanzienlijk sneller zal zijn. Merk op dat deze aanpak alleen werkt als je in staat bent om de volledige bestandsinhoud in een aaneengesloten geheugen op te slaan en de huidige harde limiet 1 GB is, zelfs als je veel terabytes RAM beschikbaar hebt!
cursor.execute("insert into t (id, b) values (:my_id, :my_blob)",
(1, mem_file.getvalue())
Het invoegen van een waarde empty_blob() en het retourneren van de LOB-locator voor latere update is sneller dan het maken van een tijdelijke LOB en het invoegen ervan (zoals u in uw code doet), maar het rechtstreeks invoegen van de gegevens is nog sneller!