sql >> Database >  >> RDS >> Sqlserver

Met behulp van SQL Server opgeslagen procedures van Python (pyodbc)

Uit de pyodbc-documentatie

Als u nu een opgeslagen procedure wilt aanroepen, geeft u de aanroep door aan de methode execute met behulp van een indeling die uw database herkent of met behulp van de ODBC-aanroep-escape-indeling. (Het ODBC-stuurprogramma zal dan de aanroep opnieuw formatteren zodat deze overeenkomt met de gegeven database.)

Voor SQL Server zou je zoiets als dit gebruiken:

# SQL Server format
cursor.execute("exec sp_dosomething(123, 'abc')")

# ODBC format
cursor.execute("{call sp_dosomething(123, 'abc')}")

Dus om uw procedure te bellen

id_ = 'test' 
pw = '12345' 
depart = 'none' 
class_ = 'GM' 
name = 'name' 
birthday = 'None' 
grade = 3 
subgrade = 2 

sql = 'exec [my_database].[dbo].[my_table](?, ?, ?, ?, ?, ?, ?, ?)'
values = (id_, pw, depart, class_, name, birthday, grade, subgrade)

cursor.execute(sql, (values))


  1. verwijst een externe sleutel altijd naar een unieke sleutel in een andere tabel?

  2. 2 manieren om alle triggers in een PostgreSQL-database op te sommen

  3. milliseconden verwijderen uit een orakel tmstmp-veld

  4. Oracle-triggerfout ORA-04091