SQL compilation error: syntax error line 1 at position 8 unexpected '-'
SQL compilation error: syntax error line 1 at position 8 unexpected '-'
我收到 SQL 编译错误:位置 8 处的语法错误行 1 意外“-”。
sql 查询是:
INSERT INTO table_name(col_names) values();
位置8是“INTO”的I
我受困于此尝试从记事本++搜索字符,但找不到。
根据您的玩具示例,您的列列表与 values
子句中的列数不匹配。您正在尝试将 0 个值插入到一些列中。
你需要这样的东西
INSERT INTO table_name(col_1, col_2, col_3) values(1, 'hello', 'world');
当我尝试与您的代码类似的操作时,我遇到了一个类似但不太有用的错误。我认为解析器根本无法理解没有输入的 values
子句,因此它甚至无法找出问题出在哪里,它只是给出一个通用的“您的插入有问题”错误。
你的“它坏了”的例子需要是可重现的。因此,您需要粘贴有问题的 not-working 代码(显然您不想粘贴)或玩具 sql。它应该看起来像:
create table toy_example(col_names text);
-- this works yippie!
insert into toy_example(col_names) values ('this is a value');
-- but this
insert into toy_example(col_names) values ();
/*
Syntax error: unexpected ')'. (line 22)
*/
因为就目前而言:
我有一些 SQL 它给我一个错误
002020 (21S01): SQL compilation error:
Insert value list does not match column list expecting 3 but got 1
我的代码如下所示:
SELECT 1;
不能真正使用。
谢谢@David Garrison 和@Simeon Pilgrim 花时间回答我的问题。
我的错误原因是:我在我的子查询中使用了 Postgres 数据类型:INTERVAL,其中包含连字符。
select CAST((DATE_TRUNC('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY') AS -
DATE
so,snowflake 与上面的连字符不兼容,但是在编译 SQL 时它没有在正确的行号中显示错误,而是在第一行 INSERT INTO 中显示错误,如前所述在我的问题中。(我认为它是雪花中的一个错误)
所以为了让它与 snowflake 兼容,我使用了:
select CAST(LAST_DAY((DATE_TRUNC('MONTH', CURRENT_DATE))) AS DATE);
INTERVAL 将在雪花模式下工作但没有连字符,即:INTERVAL '30 DAYS',
但这对二月份不公平,所以我使用了 LAST_DAY 函数。
查询顺利 :D
我收到 SQL 编译错误:位置 8 处的语法错误行 1 意外“-”。
sql 查询是:
INSERT INTO table_name(col_names) values();
位置8是“INTO”的I
我受困于此尝试从记事本++搜索字符,但找不到。
根据您的玩具示例,您的列列表与 values
子句中的列数不匹配。您正在尝试将 0 个值插入到一些列中。
你需要这样的东西
INSERT INTO table_name(col_1, col_2, col_3) values(1, 'hello', 'world');
当我尝试与您的代码类似的操作时,我遇到了一个类似但不太有用的错误。我认为解析器根本无法理解没有输入的 values
子句,因此它甚至无法找出问题出在哪里,它只是给出一个通用的“您的插入有问题”错误。
你的“它坏了”的例子需要是可重现的。因此,您需要粘贴有问题的 not-working 代码(显然您不想粘贴)或玩具 sql。它应该看起来像:
create table toy_example(col_names text);
-- this works yippie!
insert into toy_example(col_names) values ('this is a value');
-- but this
insert into toy_example(col_names) values ();
/*
Syntax error: unexpected ')'. (line 22)
*/
因为就目前而言:
我有一些 SQL 它给我一个错误
002020 (21S01): SQL compilation error: Insert value list does not match column list expecting 3 but got 1
我的代码如下所示:
SELECT 1;
不能真正使用。
谢谢@David Garrison 和@Simeon Pilgrim 花时间回答我的问题。
我的错误原因是:我在我的子查询中使用了 Postgres 数据类型:INTERVAL,其中包含连字符。
select CAST((DATE_TRUNC('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY') AS -
DATE
so,snowflake 与上面的连字符不兼容,但是在编译 SQL 时它没有在正确的行号中显示错误,而是在第一行 INSERT INTO 中显示错误,如前所述在我的问题中。(我认为它是雪花中的一个错误)
所以为了让它与 snowflake 兼容,我使用了:
select CAST(LAST_DAY((DATE_TRUNC('MONTH', CURRENT_DATE))) AS DATE);
INTERVAL 将在雪花模式下工作但没有连字符,即:INTERVAL '30 DAYS', 但这对二月份不公平,所以我使用了 LAST_DAY 函数。
查询顺利 :D