Informix选择外部语法错误

时间:2017-05-17 12:48:43

标签: informix

有人可以告诉我以下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.

2 个答案:

答案 0 :(得分:2)

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

我认为您的问题是您尝试为表提供列名和数据类型。

这个SQL对我有用:

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

这个SQL没有,生成了一个-201"发生了语法错误"错误:

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在运行macOS Sierra 10.12.5的Mac上进行测试。

答案 1 :(得分:0)

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

查询返回更多没有明确名称的列,并标记为“表达式”,这就是Error: Virtual column must have explicit name.弹出的原因。

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