【问题标题】:INSERT INTO in IB Expert在 IB Expert 中插入
【发布时间】:2021-07-19 10:36:20
【问题描述】:

我有数千行看起来像这样:

insert into TABLE (name) values ('name_1');
insert into TABLE (name) values ('name_2');
...
insert into TABLE (name) values ('name_10000');

一个一个地执行它们就可以了。但是当我想一次运行两个或更多时,它总是会在第二行返回错误:

Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 1.
insert.

任何线索如何解决它?删除 ; 不会改变任何事情。

【问题讨论】:

  • 你试过用EXECUTE BLOCK
  • @JaimeDrq 是的,现在它返回 Unexpected end of command。但至少不是在第 2 行,而是在第 146 行。
  • 这意味着它正在尝试执行所有内容,就好像它是一条语句一样。您需要将此作为脚本执行,以便 IB Expert 执行单独的语句(但是,我不知道 IB Expert 会说如何执行此操作)。 Firebird 本身只能执行单个语句(或像EXECUTE BLOCK 这样的 PSQL 块中的语句)。
  • @MarkRotteveel 已解决。需要将这些行作为脚本执行。所有其他方式/组合都会导致错误。

标签: sql firebird ibexpert


【解决方案1】:

不能在“SQL 编辑器”中而是在“脚本执行器”中同时执行多个 SQL 命令(Ctrl-F12 而不是 F12)。

【讨论】:

  • 现在它返回错误Cannot perform operation -- DB is not open.
  • 您必须使用窗口左上角的组合框选择数据库连接。
  • 它被选中了。也许它缺少连接语句?
  • 没有。在组合框中选择连接和连接语句是可以互换的。确保打开选择的连接不仅仅是“当前” - 有时它不起作用。 @resharper
【解决方案2】:

EXECUTE BLOCK 的语法应该是这样的:

execute block
as
begin
  insert into TABLE (name) values ('name_1');
  insert into TABLE (name) values ('name_2');
  ...
  insert into TABLE (name) values ('name_10000');
end

【讨论】:

猜你喜欢
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 2022-01-10
  • 1970-01-01
  • 2010-11-09
相关资源
最近更新 更多