Как сохранить файлы из postgreSQL на локальный?

У меня есть требование, чтобы в таблице, размещенной в Azure PostgreSQL, сохранялось много файлов (например, изображений, .csv). Файлы сохраняются как двоичный тип данных. Можно ли извлечь их напрямую в локальную файловую систему с помощью SQL-запроса? Я использую python в качестве языка программирования, спасибо за любое руководство или образец кода!


person SQL BIGNNER    schedule 02.12.2020    source источник


Ответы (1)


Если вы просто хотите извлечь двоичные файлы из SQL в локальный и сохранить как файл, попробуйте следующий код:

import psycopg2
import os

connstr = "<conn string>"
rootPath = "d:/"

def saveBinaryToFile(sqlRowData):
    destPath = rootPath + str(sqlRowData[1]) 

    if(os.path.isdir(destPath)):
        destPath +='_2'
        os.mkdir(destPath)
    else:
        os.mkdir(destPath)
        
    
    newfile = open(destPath +'/' + sqlRowData[0]+".jpg", "wb");
    newfile.write(sqlRowData[2])
    newfile.close

conn = psycopg2.connect(connstr)
cur = conn.cursor()
sql = 'select * from images'
cur.execute(sql)
rows = cur.fetchall()
print(sql)
print('result:' + str(rows))
for i in range(len(rows)):
    saveBinaryToFile(rows[i])

conn.close()

Это моя примерная таблица SQL: введите здесь описание изображения

Результат:

введите здесь описание изображения

введите здесь описание изображения

person Stanley Gong    schedule 03.12.2020