cjcom 2021-09-25 15:41 采纳率: 0%
浏览 20

python如何给sql存储过程的参数传值?

以下为存储过程和python代码:

PROCEDURE GCname
AS

BEGIN
    SET NOCOUNT ON; 
    declare @FG nvarchar(30)
    SET @FG=''
    
    select * from table where name1=@FG
END

PYTHON:
with connection.cursor() as cur:
    cur.execute("exec GCname @FG='MARY'")
    query_list = cur.fetchall()
    cur.close()

Exception Value:

('42000', '[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]过程 GCname 没有参数,但却为该过程提供了参数。 (8146) (SQLExecDirectW)')

  • 写回答

1条回答 默认 最新

  • slpa 2023-02-12 17:59
    关注

    您需要在存储过程中声明和使用参数:

    
    PROCEDURE GCname (@FG nvarchar(30))
    AS
    BEGIN
        SET NOCOUNT ON; 
        select * from table where name1=@FG
    END
    

    然后在 Python 代码中执行存储过程时可以将参数传递给存储过程:

    
    with connection.cursor() as cur:
        cur.execute("exec GCname @FG='MARY'")
        query_list = cur.fetchall()
        cur.close()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月25日