Получение pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][Драйвер ODBC SQL Server][SQL Server]Необходимо объявPython

Программы на Python
Anonymous
Получение pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][Драйвер ODBC SQL Server][SQL Server]Необходимо объяв

Сообщение Anonymous »

Я пытаюсь выполнить файл .sql из Python3.
Ниже приведен код Python, который я пытаюсь выполнить

Код: Выделить всё

import time
userdate=time.strftime("%m_%d_%H_%M%S")
import pypyodbc as pyodbc
db_host='hostname\DBTEST'
db_name='dbname'
conn='Driver={SQL Server};Server=' + db_host + ';Database=' +db_name +
';Trusted_Connection=yes;'
db=pyodbc.connect(conn)
cursor=db.cursor()
file=open('C:\\abc\\xyz.sql','r')
line=file.read()
sql_cmd=line.split('\n')
for x in sql_cmd:
cursor.execute(x)
Ниже приведен скрипт xyz.sql

Код: Выделить всё

DECLARE @XML XML;
DECLARE @FileName VARCHAR(1000);
DECLARE @Id UNIQUEIDENTIFIER
SELECT @Id = NEWID()
SELECT @FileName = 'ggg.xml'
SELECT @XML = '
....xml tags here...
....

'

IF EXISTS (SELECT * FROM tablename CM WHERE CM.columnname = 'test') BEGIN
UPDATE CM
SET CM.pn = '01-00001',
CM.rev= '06',
CM.Model = @XML,
CM.ModifiedOn = GETUTCDATE()
FROM cm.tablename CM
WHERE CM.columnname= 'test'

PRINT 'Updated ' + @FileName
END ELSE BEGIN
INSERT INTO cm.tablename(cmID, MN, CMType, Description, PN, Rev, CM,
RowStatus, ModifiedBy, ModifiedOn)
SELECT @Id, 'test123', 'abc.1', '', '01-00011', '01', @XML, 'A',
'74E8A3E0-E5CA-4563-BD49-12DFD210ED92', GETUTCDATE()
PRINT 'Inserted ' + @FileName
END
При запуске кода Python я получаю сообщение об ошибке ниже.

Код: Выделить всё

pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL
Server Driver][SQL Server]Must declare the scalar variable "@Id".')
DECLARE @XML XML;
DECLARE @FileName VARCHAR(1000);
DECLARE @Id UNIQUEIDENTIFIER
SELECT @Id = NEWID()
Процесс завершен с кодом завершения 1

Примечание. Если я запускаю запрос sql из студии M/S SQL Management (sql server 2016), он выполняется успешно.
Буду признателен за любую помощь.>

Вернуться в «Python»