Informix select 进入外部语法错误

Informix select into external syntax error

有人可以告诉我以下 informix 语句有什么问题吗:

SELECT *  FROM
     (some big query here) 
 INTO EXTERNAL empdata(selected_date date, land char, grund integer, some_user varchar, nr decimal(15))
 USING (DATAFILES("DISK:/usr1/tbodan.out"))

我在 INTO EXTERNAL empdata 附近遇到语法错误。

更新

Informix 版本为 11.7,省略列定义只会带来以下错误Error: Virtual column must have explicit name.

您需要遵循 INTO EXTERNAL clause 中记录的语法。

我认为您的问题是您试图为 table.

提供列名和数据类型

这个 SQL 对我有用:

SELECT * FROM elements
  INTO EXTERNAL ext_elements
 USING (DATAFILES("DISK:/Users/jleffler/tmp/ext-elements.table"))

这个 SQL 没有,生成了 -201 "A syntax error has occurred" 错误:

SELECT * FROM elements
  INTO EXTERNAL ext_elements(atomic_number INTEGER, symbol CHAR(3),
                             name CHAR(20), atomic_weight DECIMAL(8,4),
                             pt_period SMALLINT, pt_group CHAR(2), stable CHAR(1))
 USING (DATAFILES("DISK:/Users/jleffler/tmp/ext-elements.table"))

使用 Informix 12.10.FC4 在 Mac 运行 macOS Sierra 10.12.5 上进行测试。

好的,问题实际上出在 select 查询中。

查询 returns 更多没有明确名称且被标记为 "expression" 的列,这就是弹出 Error: Virtual column must have explicit name. 的原因。

我通过为这些列使用别名解决了这个问题。然后使用建议的语法 .