前一段时间记得有类似的一个帖子好像是有这个问题。sql*plus里面可以正常执行的语句在pl/sql里面可能不支持。

解决方案 »

  1.   

    Declare i Number ;
    Begin
      Select (Select dummy From dual)  From dual;
    End;
      

  2.   

    这个没有问题
    Declare a varchar2 ;
    Begin
      Select (Select dummy From dual) into a  From dual;
    End;
      

  3.   

    Declare
      a varchar2(20);
    Begin
      Select (Select dummy From dual) into a From dual;
      dbms_output.put_line(' a ' || a);
    End;这样看的更明确了.
      

  4.   

    测试版本:8.1.615:48:11 SQL> Declare
    15:48:18   2  a varchar2 ;
    15:48:20   3  Begin
    15:48:24   4    Select (Select dummy From dual) into a  From dual;
    15:48:24   5  End;
    15:48:24   6  /
      Select (Select dummy From dual) into a  From dual;
              *
    ERROR 位于第 4 行:
    ORA-06550: 第 4 行, 第 11 列:
    PLS-00103: 出现符号 "SELECT"在需要下列之一时:
    (-+modnotnullothers
    <an identifier><a double-quoted delimited-identifier>
    <a bind variable>avgcountcurrentexistsmaxminpriorsqlstddev
    sumvarianceexecuteforalltimetimestampintervaldate
    <a string literal with character set specification>
    <a number><a single-quoted SQL string>
    ORA-06550: 第 4 行, 第 35 列:
    PLS-00103: 出现符号 "INTO"在需要下列之一时:
    ;returnreturningandor
    已用时间:  00: 00: 00.62
    15:48:24 SQL>
      

  5.   

    Declare a varchar2 ;
    Begin
      Select (Select dummy From dual) into a  From dual;
    End;
    ================
    这个也不可以
    我的也是8.1.6
      

  6.   

    to  bzszp(SongZip
       在sqlplus 中也不能通过的.
    怎么会有这么多的限制,很多想做的操作根本没法做到,怎么办?
    怎么sqlserver就没有任何限制呢
      

  7.   

    这样吧!Declare a varchar2(20) ;
    Begin
      Select (Select dummy From dual) into a  From dual;
    End;
      

  8.   

    liuyi8903(西西) 
      也出错啊
      

  9.   

    你的什么环境?
    我这里是9.2已连接到 Oracle9i Enterprise Edition Release 9.2.0.1.0 
    已连接为 kdcnew
    SQL> 
    SQL> Declare a varchar2(20) ;
      2  Begin
      3    Select (Select dummy From dual) into a  From dual;
      4  End;
      5  
      6  /PL/SQL 过程成功完成SQL>
      

  10.   

    需要
    select col into v_var from dual
      

  11.   

    环境8i
      其实我的意思不是要往dual表插入数据,这里只是为了方便说明才用它的。
    我的真正意图是想搞清楚pl/sql块是不是对sql语句有限制,比如对select子查询等。