有人可以告诉我以下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.
答案 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的语法。