在Unix上的SQL Plus中执行多行语句

amp*_*ent 3 oracle sqlplus oracle11g

我正在尝试编写一个简单的游标并在Unix,SQL Plus上的命令行Oracle客户端中运行它.我大部分时间都在使用单行语句,一旦写完它就找不到执行多行语句的方法.有人可以帮忙吗?

这是我的代码:

DECLARE 
   TYPE array_t IS varray(4) OF varchar2(10); 
   ARRAY array_t := array_t('foo', 'bar', 'stack', 'overflow');
BEGIN 
   FOR i IN 1..array.count loop
       dbms_output.put_line(array(i)); 
   END loop; 
END; 
Run Code Online (Sandbox Code Playgroud)

谢谢

Nic*_*nov 9

要在SQL*PLUS中执行PL/SQL块,请在PL/SQL块的末尾添加斜杠:

SQL> DECLARE
  2     TYPE array_t IS varray(4) OF varchar2(10);
  3     ARRAY array_t := array_t('foo', 'bar', 'stack', 'overflow');
  4  BEGIN
  5     FOR i IN 1..array.count loop
  6         dbms_output.put_line(array(i));
  7     END loop;
  8  END;
  9  /
Run Code Online (Sandbox Code Playgroud)

  • 句点(`.`)终止PL/SQL模式,但不运行PL/SQL块,而`run`命令或斜杠`/`do. (3认同)
  • 还发现`/`绝对必须在它自己的行上。 (2认同)