Как передать df в качестве возвращающего табличное значение параметра и после того, как df передается как TPV, используя это обновление, или вставить выходную таблицу в SQL Server

В рамках моей деятельности по разработке в проекте мне нужно обновить или вставить выходную таблицу. Я пытаюсь передать DF как параметр с табличным значением в процедуре хранилища. Я хочу добиться этого с помощью хранимой процедуры. Может ли кто-нибудь помочь мне здесь?

У меня DF с 33 колонками. Он имеет столбцы varchar, nvarchar, int, smallint, float и datetime.

Например, я попробовал, как упомянуто здесь - https://www.sqlshack.com/table-valued-parameters-in-sql-server/, таблица, таблица типов и процедура, как в приведенной выше ссылке. НО единственная разница - ВМЕСТО ВСТАВКИ в качестве объявления, которое я пытался перейти от DF.

Пример DF, как показано ниже.

data = {'No':[1,2,3],'Name':['A','B','C','D']}

df=pd.DataFrame(data)

Изменение DF в список - ›кортеж, как в ссылке -› Можно ли передавать значения параметра типа таблицы из PYODBC в SQL Server?

rec= df.to_records(index=False)
param=[tuple(rec)]
query="{call Usp_InsertLessonMemOpt (?) }"

**PYODBC connection**

cursor=py_con.cursor()
cursor.execute(query,param)
py_con.commit()
py_con.close()

Ошибка: ('HY003', '[HY003] [Microsoft] [Диспетчер драйверов ODBC] Тип программы вне диапазона (0) (SQLBindParametr)')

Если бы я попробовал с turbodbc

Ошибка выполнения Ошибка! неподдерживаемый идентификатор типа для столбца параметр_1 NULLABLE UNKNOWN TYPE (точность 0, масштаб 0))

Использование: драйвер ODBC 13 для SQL Server и python 3.7.9

Заранее спасибо.


person smilepet    schedule 06.04.2021    source источник
comment
Помогает ли этот предыдущий вопрос SO, вызов Python sql-server хранимая процедура с табличным параметром?   -  person AlwaysLearning    schedule 06.04.2021
comment
@AlwaysLearning извините, ссылка выше не отвечает на мой вопрос. Я хочу передать свой df как параметр с табличным значением. Затем на основе входного значения либо обновите, либо вставьте записи в выходную таблицу. используя опцию слияния в процедуре магазина.   -  person smilepet    schedule 06.04.2021