@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() можно добавить соответствующую логику обработки результатов в зависимости от того, каким образом хранимая процедура возвращает данные.