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.
的原因。
我通过为这些列使用别名解决了这个问题。然后使用建议的语法 .
有人可以告诉我以下 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.
的原因。
我通过为这些列使用别名解决了这个问题。然后使用建议的语法