SQL 转换名为 "file" 的列时出现编译错误
SQL compilation error when casting a column named "file"
在投射名为 file
的列时,Snowflake returns 出现奇怪的错误。没有类型转换就不会发生错误。
CREATE TABLE my_table (file VARCHAR);
Table MY_TABLE successfully created.
SELECT file FROM my_table;
0 Row(s) produced.
SELECT file::VARCHAR FROM my_table;
001003 (42000): SQL compilation error: parse error line 1 at position 12 near '58'.
有一个非常简单的解决方案 - 引用列标识符:
SELECT "FILE"::VARCHAR FROM my_table;
但是,最好避免使用 file
作为列名,而改用 file_name
或 file_path
之类的名称。
不过,该错误消息肯定可以改进!
而且 file
似乎应该是 reserved keyword(截至 2020 年 2 月 24 日不是这种情况)。
在投射名为 file
的列时,Snowflake returns 出现奇怪的错误。没有类型转换就不会发生错误。
CREATE TABLE my_table (file VARCHAR);
Table MY_TABLE successfully created.
SELECT file FROM my_table;
0 Row(s) produced.
SELECT file::VARCHAR FROM my_table;
001003 (42000): SQL compilation error: parse error line 1 at position 12 near '58'.
有一个非常简单的解决方案 - 引用列标识符:
SELECT "FILE"::VARCHAR FROM my_table;
但是,最好避免使用 file
作为列名,而改用 file_name
或 file_path
之类的名称。
不过,该错误消息肯定可以改进!
而且 file
似乎应该是 reserved keyword(截至 2020 年 2 月 24 日不是这种情况)。