问题描述
我试图从迁移中的列中提取json对象。我收到此错误
__main__ ERROR (pyodbc.ProgrammingError) ('42000',"[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '>'
这是我的代码。我该如何解决?
def upgrade():
op.execute("CREATE VIEW MESSAGE_VIEW AS SELECT "
"event_messages.message_id,"
"event_messages.event_id,"
"event_messages.message,"
"event_messages.message::json->'message' AS message_input "
"FROM event_messages "
"LEFT JOIN chatbot_events ON event_messages.event_id = chatbot_events.event_id;")
解决方法
您的代码不正确。
您不能在MSSQL中运行此命令。因为您的命令特定于PostgreSQL。
event_messages.message :: json->'message'AS message_input 是PostgreSQL中的JSON数据类型,MSSQL不支持。
正确的MSSQL语句是:
def upgrade():
op.execute("CREATE VIEW MESSAGE_VIEW AS SELECT "
"event_messages.message_id,"
"event_messages.event_id,"
"event_messages.message,"
"event_messages.message AS message_input "
"FROM event_messages "
"LEFT JOIN chatbot_events ON event_messages.event_id = chatbot_events.event_id;")
有关更多信息,请阅读this