stored procedures with sqlAlchemy

后端 未结 7 1484
醉梦人生
醉梦人生 2020-12-01 07:17

How can I call stored procedures of sql server with sqlAlchemy?

7条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-01 07:51

    Supposing you already have session created with sessionmaker(), you can use following function:

    def exec_procedure(session, proc_name, params):
        sql_params = ",".join(["@{0}={1}".format(name, value) for name, value in params.items()])
        sql_string = """
            DECLARE @return_value int;
            EXEC    @return_value = [dbo].[{proc_name}] {params};
            SELECT 'Return Value' = @return_value;
        """.format(proc_name=proc_name, params=sql_params)
    
        return session.execute(sql_string).fetchall()
    

    Now you can execute your stored procedure 'MyProc' with parameters simply like that:

    params = {
        'Foo': foo_value,
        'Bar': bar_value
    }
    exec_procedure(session, 'MyProc', params)
    

提交回复
热议问题