пытаюсь понять как переадть аргументы

main
Лев 2025-08-28 10:26:38 +05:00
parent 0d409d4147
commit 58c3dd3664
1 changed files with 4 additions and 32 deletions

View File

@ -62,50 +62,22 @@ class SimpleDB:
try: try:
with self.pool.acquire() as connection: with self.pool.acquire() as connection:
with connection.cursor() as cursor: with connection.cursor() as cursor:
result_var = cursor.var(CLOB)
# Только один параметр - выходной!
cursor.callproc('P_RK_GOVERNMENT_REPORTS_INSERS', [result_var])
json_result = result_var.getvalue()
print("JSON результат:", json_result)
# Узнать сигнатуру процедуры
cursor.execute("""
SELECT position, argument_name, data_type, in_out
FROM all_arguments
WHERE object_name = 'P_RK_GOVERNMENT_REPORTS_INSERS'
ORDER BY position
""")
print("Сигнатура процедуры P_RK_GOVERNMENT_REPORTS_INSERS:")
for arg in cursor:
# Преобразуем все в строки для безопасного вывода
pos_str = str(arg[0]) if arg[0] is not None else "0"
name_str = str(arg[1]) if arg[1] is not None else "RETURN"
type_str = str(arg[2]) if arg[2] is not None else "UNKNOWN"
dir_str = str(arg[3]) if arg[3] is not None else "UNKNOWN"
print(f"Позиция {pos_str}: {name_str} ({type_str}) - {dir_str}")
for id, value in dict_data.items(): for id, value in dict_data.items():
if len(value) != 5: if len(value) != 5:
continue continue
organ, names, date_from_str, date_to_str, ver = value organ, names, date_from_str, date_to_str, ver = value
# Парсим даты # Парсим даты
date_from = parser.parse(date_from_str).date() date_from = parser.parse(date_from_str).date() if date_from_str else None
date_to = parser.parse(date_to_str).date() if date_to_str else None date_to = parser.parse(date_to_str).date() if date_to_str else None
print("Вывод отправляемых агрументов: ", int(id), organ, names, date_from, date_to, ver) print("Вывод отправляемых агрументов: ", int(id), organ, names, date_from, date_to, ver)
print(type(int(id)), type(organ), type(names), type(date_from), type(date_to), type(ver)) print(type(int(id)), type(organ), type(names), type(date_from), type(date_to), type(ver))
result_var = cursor.var(CLOB) cursor.callproc('P_RK_SEND_JSON_LIST_FACEACC', [
cursor.callproc('P_RK_GOVERNMENT_REPORTS_INSERS', [
int(id), int(id),
organ, organ,
names, names,
date_from, date_from,
date_to, ver, date_to,
result_var # OUT-параметр всегда последний ver,
]) ])
json_result = result_var.getvalue()
print("JSON результат:", json_result)
except Error as e: except Error as e:
raise HTTPException(status_code=500, detail=f"Database error: {e}") raise HTTPException(status_code=500, detail=f"Database error: {e}")