SQL数据仓库、Python和存储过程

2024-10-03 04:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个依赖链,每晚都在Python脚本中运行。这个依赖链的一部分是通过mssqlserver上的存储过程加载和转换数据。我们的公司刚刚将数据库迁移到Azure的SQL数据仓库,所以我开始转换依赖链,但是现在遇到了一个错误,我认为这个错误与ADW有关,这是我们添加到服务器上的存储过程所特有的。在SSMS中执行存储过程没有问题,但以下代码产生了随后的错误:

import pyodbc

def conn_string_AZUREDW():

    Uid = '***'
    Pwd = '***'

    driver = '{SQL Server Native Client 11.0}'
    server = 'ourServer'
    database = 'ourDB'

    conn_string = 'driver=%s; server=%s; database=%s; Uid=%s; Pwd=%s;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30' % (driver, server, database, Uid, Pwd)
    return str(conn_string)  

connObjectADW = conn_string_AZUREDW()
connADW = pyodbc.connect(connObjectADW)
cursorADW = connADW.cursor()

cursorADW.execute('exec [schema].[sproc]')
connADW.commit()

错误:

^{pr2}$

存储过程示例:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROC [schema].[sproc] AS
BEGIN

    [DROP TEMP TABLE IF OBJECT EXISTS]
    [SELECT INTO TEMP TABLE]

    [DROP REAL TABLE IF OBJECT EXISTS]
    [SELECT INTO REAL TABLE]

END
GO

有人有幸在Azure的SQL数据仓库上执行Python存储过程吗?在


Tags: gosqluidstringserver过程driver错误