0

我使用 ODBC 在 Excel 中创建了一个工作表并在其中添加了一行。

从字面上看,命令只是:

create table 'update5' ('age' NUMBER);
insert into 'update5'.'age' values (1);

这很有效,我可以通过 DBVisualiser 和我的 ODBC 查询结果查看工作表中的行。

后来,我写了更多的 SQL 来添加另一行,如下所示:

insert into 'update5' ('age') values (2);

但我得到了错误:

[Microsoft][ODBC Excel 驱动程序] 无法扩展命名范围。

我不知道为什么要使用命名范围,有没有办法可以将 ODBC 设置为不使用它们?

4

2 回答 2

0

在不知道更多关于你在做什么、你在做什么以及你的最终目标的情况下,我无法给出明确的答案——但是,如果你说这可以正常工作:

create table 'update5' ('age' NUMBER);
insert into 'update5'.'age' values (1);

...那么有理由认为:

insert into update5 values (2);

...将无法工作,因为您缺少:

  • 引号(在您的环境中可能是可选的,也可能不是可选的),并且,
  • 要导出到的字段名称。

在第一个insert into语句中,您有:

'update5'     <-- the destination table
.'age'        <-- the destination field
 values (1);  <-- the value to insert

...因此,如果您只是尝试将带有数字的记录添加2到同一字段,请使用相同的代码

insert into 'update5'.'age' values (2);

更多信息:

于 2018-07-06T11:00:32.947 回答
0

找到了。

当您通过 ODBC 在 Excel 中创建表时,您会在该表中创建一个同名的命名范围。

当您尝试像这样插入时:

insert into 'update5'.'age' values (2);

它被解释为您试图添加到名为 update5 的命名范围,该范围位于表 update5 内。

您需要使用以下语法:

insert into [update5$].'age' values (2);

将值添加到名为 update5 的表中。

于 2018-07-06T14:27:01.233 回答