2012-10-01 36 views
3

我想写一个简单的游标并在Unix,SQL Plus的命令行Oracle客户端中运行它。我主要使用单行语句,并且一旦写完它就无法找到执行多行语句的方法。任何人都可以帮忙吗?在Unix上执行SQL Plus中的多行语句

这里是我的代码:

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; 

感谢

回答

9

在SQL执行PL/SQL块* PLUS,在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/
+0

这和刚刚打字有什么区别。 ?两者似乎都做同样的事情 – amphibient

+3

句点('.')终止PL/SQL模式,但不运行PL/SQL块,而'run'命令或斜杠'/'做。 –

+0

还发现'/'绝对必须在它自己的行上。 – FloorDivision