2012-02-07 116 views
21

我有一些从Excel表生成的一些800-1200 INSERT语句。我想在TOAD中运行这些 - Oracle数据库。Toad for Oracle ..如何执行多个语句?

如果我按F9 ,它只能运行一个线和F5给我的语法问题,似乎没有工作?我在这里错过了什么?

+1

什么是错误?你能否添加一个失败语句的小例子? – 2012-02-07 03:57:33

+0

F5挂起并且什么都不做,我需要在几分钟后取消操作。 F9在一行中用多个语句分隔“;”在第一个“;”之后给出一个错误,说明有一个无效字符。 – user1191463 2012-02-07 04:04:43

+1

自从我使用了TOAD以来已经有一段时间了,但是如果我没有记错,有几种情况下它的解析器无法正常工作。例如,可选的引用机制,例如'q'!...!'',并在分号后注释。不知道为什么F5会挂起,除非它打开另一个会话,并且正在等待当前会话提交/回滚?无论哪种方式,如果您可以发布一个小测试用例,这将有所帮助。 – 2012-02-07 04:24:21

回答

27

F9只执行一条语句。默认情况下,Toad会尝试在你的光标所在的位置执行语句,或者将所有突出显示的文本视为语句并尝试执行该语句。在这种情况下,不需要A ;

F5是“执行的脚本”,这意味着蟾蜍会采取两种完全凸显含有一个以上的语句文本(或一切都在你的编辑器,如果没有被高亮显示),并执行它喜欢它是SQL脚本*加。因此,在这种情况下,每个声明后必须跟一个;,有时(在PL/SQL情况下)以/结尾。

+0

知道为什么F5以纯文本形式提供输出,而F9以电子表格的形式输出输出,或者为describe语句形式提供新的TOAD窗口? – 2013-06-20 22:04:12

+0

@PeterBecich:这是因为F5正在外部程序中执行; TOAD不解释纯文本的结果。另一方面,F9直接由TOAD执行,因此它可以将结果格式化为一个很好的网格布局。 – 2014-08-19 03:11:03

4

突出显示想要运行并以脚本运行的所有内容。您可以通过点击菜单栏上的图标来完成此操作,该图标看上去像一个带有闪电的文本文件。这与打F5相同。所以如果F5不起作用,你的脚本可能会有错误。

你在每个陈述后都有分号吗?

2

我更喜欢通过SQL * Plus选项执行。它位于“作为脚本执行”工具栏按钮下的小下箭头菜单中。

1

打开Toad的多个实例并执行。

1

你可以去f5它会执行选项卡上的所有脚本。

或者

您可以创建一个SQL文件,并把所有的INSERT语句中它比给在SQL Plus中的文件路径和执行。

4

将多个语句包装在BEGIN END块中以使它们成为一个语句并在END之后添加一个斜杠;条款。

BEGIN 
    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Bite in the Apple', 'Chrisann Brennan'); 

    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Restaurant at the End of the Universe', 'Douglas Adams'); 
END; 
/

这样,它只是ctrl - 一个然后按Ctrl - 输入,它会。

1
  1. 只是finsih所有的查询;
  2. 选择您需要的所有查询(插入,选择...)。
  3. 推或F5或F9两个作品。

没必要执行脚本作为

1
begin 

insert into fiscal_year values(2001,'01-jan-2001','31-dec-2001'); 
insert into fiscal_year values(2002,'01-jan-2002','31-dec-2002'); 
insert into fiscal_year values(2003,'01-jan-2003','31-dec-2003'); 
insert into fiscal_year values(2004,'01-jan-2004','31-dec-2004'); 

end; 

这样使用,然后提交。