Informix“;“加载”;命令在Python pyodbc中不起作用

Informix“;“加载”;命令在Python pyodbc中不起作用,python,informix,pyodbc,Python,Informix,Pyodbc,我们正在编写一个实用程序来将数据加载到Informix数据库中 我们的实用程序是用Python编写的,我们使用pyodbc包来连接和执行SQLs 选择和插入查询工作正常 然而,sql “从输入加载_文件分隔符“|”插入到表中” 正在失败,出现以下错误 pyodbc.ProgrammingError: ('42000', '[42000] [Informix][Informix ODBC Driver][Informix]A syntax error has occurred. (-201) (S

我们正在编写一个实用程序来将数据加载到Informix数据库中

我们的实用程序是用Python编写的,我们使用pyodbc包来连接和执行SQLs

选择和插入查询工作正常

然而,sql

“从输入加载_文件分隔符“|”插入到表中”

正在失败,出现以下错误

pyodbc.ProgrammingError: ('42000', '[42000] [Informix][Informix ODBC Driver][Informix]A syntax error has occurred. (-201) (SQLExecDirectW)') 
pyodbc是否不支持Informix中的“load”命令

提前感谢你的帮助


谢谢,

不幸的是,“从…加载”(和“卸载到…”)仅适用于DBACCESS和ISQL。没有一个客户端API(ODBC/JDBC/.NET)支持这些命令。

因为,
LOAD
命令是由前端工具实现的伪SQL命令;它不是由数据库服务器实现的

有许多具有相同属性的其他相关命令:

  • 加载
  • 卸载
  • 输出
  • INFO
LOAD
的一个复杂因素是,文件名由本地计算机上的客户端指定,但文件内容可能必须通过网络传输到数据库服务器所在的位置。这不是一个无法克服的问题;BLOB和CLOB文件可能会出现类似的问题,并且已经被克服


这些操作都是通过ISQL和DB Access实现的(并且通过诸如my之类的工具,您可能需要注册才能下载,但注册是免费的,电子邮件加载并不繁重)。

使用外部表加载数据怎么样? 插入target1,从ext1选择*


我们没有类似于sqlcmd的python库来执行此操作吗?我假设pyodbc是通用的,这就是它不支持的原因,任何特定于Informix的python库都会实现它。如果它被实现,那么它将由对pyodbc足够了解的人来实现,知道如何可靠地实现它,并提供代码。这里有文件读取(不太复杂)、字段拆分、类型管理(字节和文本BLOB比较棘手;其余大部分都是可管理的,但BLOB和CLOB也会出现一些问题),然后是基本插入(这是最不复杂的部分)。谢谢Jonathan,我们修改了脚本以执行“插入”而不是“加载”谢谢你的解释谢谢你的评论Nagaraju,这对我来说是新鲜事。