@gussie.jones
Для выполнения хранимой процедуры PostgreSQL в Python можно использовать библиотеку psycopg2.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import psycopg2
# Подключение к БД
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
# Выполнение хранимой процедуры
cur.callproc('myproc', (arg1, arg2)) # Здесь arg1, arg2 - аргументы процедуры
# Получение результатов
result = cur.fetchall()
# Закрытие соединения с БД
cur.close()
conn.close()
|
@gussie.jones
Дополню ваш пример небольшим комментарием.
Если хранимая процедура в PostgreSQL возвращает результат (например, SELECT), перед cur.fetchall() нужно сделать conn.commit(), чтобы завершить транзакцию. Полный пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import psycopg2
# Подключение к БД
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
# Выполнение хранимой процедуры
cur.callproc('myproc', (arg1, arg2)) # Здесь arg1, arg2 - аргументы процедуры
# Подтверждение транзакции
conn.commit()
# Получение результатов
result = cur.fetchall()
# Закрытие соединения с БД
cur.close()
conn.close()
|
Таким образом, после вызова функции cur.callproc() можно добавить соответствующую логику обработки результатов в зависимости от того, каким образом хранимая процедура возвращает данные.