#python #sql
#python #sql
Вопрос:
Черт возьми, я пытаюсь выполнить приведенный ниже запрос. Он работает при выполнении в базе данных, но при попытке выполнить в скрипте python выдает ошибку:
OperationalError: near "(": syntax error
Запрос:
SELECT * FROM (VALUES (1,2), (3,4)) t1 (c1, c2)
Python:
cursor.execute('SELECT * FROM (VALUES (1,2), (3,4)) t1 (c1, c2)')
ОШИБКА ВЫВОДА
OperationalError: near "(": syntax error
Ожидаемая проблема
Я думаю, что есть проблема при создании временной таблицы t1 с полями c1 и c2.
Комментарии:
1. используйте cursor.execute(‘ВЫБЕРИТЕ * ИЗ ЗНАЧЕНИЙ (1,2), (3,4) ‘), как vise
Ответ №1:
попробуйте это…
cursor.execute("SELECT * FROM (VALUES ('1','2'), ('3','4')) t1 ('c1', 'c2')")
Комментарии:
1. Получаю ту же ошибку… OperationalError: рядом с «(«: синтаксическая ошибка
2. Что это за база данных? Я не признаю синтаксис допустимым для создания таблицы. Я распознаю его как синтаксис производной таблицы, но производная таблица существует только в течение всего срока действия запроса.
Ответ №2:
Это должно сработать:
sql = '''SELECT * FROM (VALUES ('1','2'), ('3','4')) t1 ('c1', 'c2')'''
cursor.execute(sql)
Комментарии:
1. Тогда, я думаю, ошибка связана не с синтаксисом, а с логикой. Что это за язык базы данных? Вы можете найти текущий язык SQL Server, выполнив следующий скрипт:
select * from sys.syslanguages where langid=@@langid
таким образом, мы можем предложить решения, специфичные для этого языка2. Я использую базу данных DB2.