Я пишу программу на python, я использую ms sql сервер в качестве моей БД и sqlalchemy в качестве моего клиентского пакета. Это таблица, как определено в python коде
class UserMessage(Base):
__tablename__ = "UserMessages"
id = Column("Id", Integer, primary_key=True, autoincrement=True)
message = Column("Message", Unicode, nullable=False)
options = Column("Options", ARRAY(Unicode), nullable=True)
answer = Column("Answer", Unicode, nullable=True)
, и это скрипт, который я использовал для создания своей таблицы
CREATE TABLE UserMessages (
Id INTEGER IDENTITY NOT NULL,
Message NVARCHAR(MAX) NOT NULL,
Options NVARCHAR(MAX),
Answer NVARCHAR(MAX),
PRIMARY KEY(Id)
)
Но когда я пытаюсь добавить запись в БД я получаю следующее исключение
sqlalchemy.ex c .ProgrammingError: (pyodb c .ProgrammingError) ('42000', "[42000] [Microsoft] [SQL Server Собственный клиент 11.0] [SQL Сервер] Столбец, параметр или переменная # 2: не удается найти тип данных READONLY. (2715) (SQLExecDirectW); [42000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Оператор (ы) не может быть подготовлен. (8180); [42000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Параметр или переменная '@ P2' имеют недопустимый тип данных. (2724) ")
Я понимаю, что проблема в столбце options
, предполагается, что этот столбец представляет собой массив json (массив, содержащий строки)
Каков тип соответствия для ARRAY(Unicode)
в sql? Есть ли другой способ создать массив строковых столбцов в sqlalchemy?