当前位置: 首页 > 知识库问答 >
问题:

在sql plus脚本中运行循环

颜修为
2023-03-14

我正在sql plus中运行一个脚本,脚本中有一个for循环:

BEGIN
  FOR count IN 1..100 LOOP
    INSERT INTO CompanyShare VALUES (count, 1, 250);
  END LOOP;
END;

BEGIN
  FOR count IN 101..200 LOOP
    INSERT INTO CompanyShare VALUES (count, 2, 50);
  END LOOP;
END;

运行脚本时出现以下错误:

ORA-06550:第6行第1列:PLS-00103:遇到符号“开始”

我哪里做错了?

共有3个答案

鲁单弓
2023-03-14

结束后分号不存在试试这个

BEGIN
  FOR count IN 1..100 LOOP
   INSERT INTO CompanyShare VALUES (count, 1, 250);
  END LOOP;
END ;   --****
BEGIN
 FOR count IN 101..200 LOOP
  INSERT INTO CompanyShare VALUES (count, 2, 50);
 END LOOP;
END;
荆哲
2023-03-14

查看您的逻辑,您甚至可以根据条件简化脚本。

  BEGIN
  FOR count IN 1..200
   LOOP
    INSERT INTO CompanyShare VALUES (count
                                    ,CASE WHEN count<=100 THEN 1   ELSE 2  END
                                    ,CASE WHEN count<=100 THEN 250 ELSE 50 END
                                    );
   END LOOP;
  END;
  /
景俊语
2023-03-14

尝试在结束后添加/如下:

BEGIN
  FOR count IN 1..100 LOOP
    INSERT INTO CompanyShare VALUES (count, 1, 250);
  END LOOP;
END;
/ --<-- Here
BEGIN
  FOR count IN 101..200 LOOP
    INSERT INTO CompanyShare VALUES (count, 2, 50);
  END LOOP;
END;
 类似资料:
  • 问题内容: 我有一个包含sqlplus特定脚本的sql文件:它包含/或; 作为语句终止符,执行存储过程的EXEC等。 我需要从Java(jdbc)执行此脚本,而无需sqlplus。 sql ant task / maven sql插件无法处理不同的终止符或EXEC命令。 您知道不运行sqlplus的任何好方法吗? 问题答案: 我们遇到了同样的问题…简而言之,目前还没有现成的解决方案:如果打开Ant

  • 问题内容: 我有一个批处理文件,该文件在sqlplus中运行一个SQL脚本,并将输出发送到日志文件: sqlplus用户/密码 RowCount.log 我的日志文件包含以下内容: 等等,但是它有数千行输出,因此很难确定哪个结果属于哪个语句。 我想在输出中添加一些格式,以便我可以识别发生了什么。可以对执行的语句进行回显,也可以在脚本中手动插入一些“ echo”语句。理想情况下,它看起来像这样: 问

  • 问题内容: 我正在尝试抓取一个按如下方式工作的特定网页。 首先加载页面,然后运行某种javascript来获取填充页面所需的数据。我对这些数据感兴趣。 如果我使用HtmlAgilityPack获取页面-该脚本不会运行,那么我得到的基本上是空白页面。 有没有一种方法可以强制它运行脚本,以便我可以获取数据? 问题答案: 您将获得服务器返回的内容-与Web浏览器相同。然后,Web浏览器将运行脚本。HTM

  • 问题内容: 我正在尝试在Dockerfile的构建过程中运行脚本。但这似乎不起作用。 我尝试过这种方式: 也这样: 并且也执行我正在运行的容器: 似乎没有任何作用。 你知道怎么做吗? 问题答案: 和是执行脚本的两种不同方式。 意味着它将创建一个中间容器,运行脚本并将该容器的新状态冻结在新的中间映像中。此后该脚本将不再运行:您的最终图像应该反映出该脚本的结果。 表示您的映像(尚未执行脚本)将创建一个

  • 问题内容: 我在尝试使用sqlplus将sql脚本运行到oracle时遇到问题。该脚本仅填充一些虚拟数据: 使用Oracle SQL Developer运行脚本时,脚本运行良好,但是使用sqlplus命令行工具时,将输出以下内容,然后将其挂起: 我正在使用以下命令行运行该工具,该命令在其他脚本中也可以正常运行: 有任何想法吗?谢谢。 问题答案: 您需要在脚本的末尾放置一个,或以(例如重定向的输入代

  • 问题内容: 我有一个C ++程序,需要从PHP脚本中获取数据,对其进行处理,然后将数据返回给我的PHP脚本。 如何将值从PHP传递到C ++? 您如何运行C ++脚本?您必须先对其进行一些编译吗? 您如何从C ++脚本中获取值? 问题答案: 1。 如何将值从PHP传递到C ++? 回答: 在php文件中,您可以使用 exec 函数来执行C ++二进制文件。例: 2。 您如何运行C ++脚本?您必须