Db lib error message 20018

Db lib error message 20018

Привет

Мне было интересно, не могли бы вы помочь. Пытаюсь использовать tds_fdw для связи с базами данных SQL Server 2016 и 2014. Одно из них закодировано в UTF-16 и, я полагаю, содержит нулевые символы. Мы получаем следующую ошибку при попытке запросить созданное нами представление. Я использую Postgresql 9.6.

ОШИБКА: Ошибка DB-Library: DB #: 20018, сообщение DB: Общая ошибка SQL Server: проверка сообщений с сервера SQL, OS #: -1, сообщение OS: (null), Уровень: 14

********** Ошибка **********

ОШИБКА: Ошибка DB-Library: DB #: 20018, сообщение DB: Общая ошибка SQL Server: проверка сообщений с сервера SQL, OS #: -1, сообщение OS: (null), уровень: 14

Состояние SQL: HV00L

Есть мысли о том, как это решить. Я использую tds 1.0.8 – также пробовал 2.0.0 alpha и получаю ту же версию. Запущена версия 1.0 free_tds.

Я не использую DSN для сервера, но создаю сервер непосредственно в postgres.

Был бы очень признателен за вашу помощь.

Ответ

Когда вы видите сообщение, подобное этому:

ERROR: DB-Library error: DB #: 20018, DB Msg: General SQL Server error: Check messages from the SQL Server, OS #: -1, OS Msg: (null), Level: 14

Это означает, что удаленный сервер по какой-либо причине отклонил запрос. Обычно вы можете получить больше информации, установив для внешнего сервера msg_handler значение notice.

ALTER SERVER svr

  OPTIONS (ADD msg_handler ‘notice’);

Похоже, у вас нет разрешения на выполнение SET SHOWPLAN_ALL, поэтому вам придется либо запросить это разрешение для вашей учетной записи пользователя, либо установить для параметра row_estimate_method foreign table значение execute вместо showplan_all.

_mssql.MSSQLDatabaseException: (207, b”Invalid column name ‘Hello’.DB-Lib error message 20018

Я хочу вставить данные из notepad в базу данных, но возникает ошибка:

Traceback (most recent call last): File “src\pymssql.pyx”, line 448, in pymssql.Cursor.execute File “src_mssql.pyx”, line 1061, in _mssql.MSSQLConnection.execute_query File “src_mssql.pyx”, line 1092, in _mssql.MSSQLConnection.execute_query File “src_mssql.pyx”, line 1225, in _mssql.MSSQLConnection.format_and_run_query File “src_mssql.pyx”, line 1636, in _mssql.check_cancel_and_raise File “src_mssql.pyx”, line 1680, in _mssql.maybe_raise_MSSQLDatabaseException _mssql.MSSQLDatabaseException: (207, b”Invalid column name ‘Hello’.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n”

Содержимое a 20180605_dict.txt

Привет: a1:a1:0.999979

Большой: a2:a2:0.999645

Apple: a3:a3:0.999486

Структура таблицы report_pn_dictionary

CREATE TABLE [dbo].[report_pn_dictionary](

  [dict_keyword] [nvarchar](50) NOT NULL,

  [dict_pn] [decimal](18, 10) NULL,

  [registered] [datetime] NULL,

  [modified] [datetime] NULL

)

Где ошибка?Как это исправить?

Ответ

Вы преобразовывали таблицу данных CSV странным образом. Наиболее важной ошибкой является то, что SQL-запрос заключает значения в кавычки (следовательно, ‘Hello’ является ошибкой недопустимого столбца). Я перекодировал фрагмент, чтобы вы могли видеть каждое изменение, комментарий и обновление; Надеюсь, я помог. Удачи!

Я упростил преобразование данных с помощью zip, объединив два экземпляра List (одинаковой длины), созданных из csv_data столбца и строки.

Закодировано в Python 3.6.4

Исправлен вывод запроса

INSERT INTO report_pn_dictionary (dict_keyword, dict_pn)

  VALUES(“Hello”, “0.9999790000000001”)

Наталья Петрова
Оцените автора
Новости города Салавата
Добавить комментарий

Adblock
detector