在pl/sql块中不可以有select子查询? 前一段时间记得有类似的一个帖子好像是有这个问题。sql*plus里面可以正常执行的语句在pl/sql里面可能不支持。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Declare i Number ;Begin Select (Select dummy From dual) From dual;End; 这个没有问题Declare a varchar2 ;Begin Select (Select dummy From dual) into a From dual;End; Declare a varchar2(20);Begin Select (Select dummy From dual) into a From dual; dbms_output.put_line(' a ' || a);End;这样看的更明确了. 测试版本:8.1.615:48:11 SQL> Declare15:48:18 2 a varchar2 ;15:48:20 3 Begin15: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>avgcountcurrentexistsmaxminpriorsqlstddevsumvarianceexecuteforalltimetimestampintervaldate<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.6215:48:24 SQL> Declare a varchar2 ;Begin Select (Select dummy From dual) into a From dual;End;================这个也不可以我的也是8.1.6 to bzszp(SongZip 在sqlplus 中也不能通过的.怎么会有这么多的限制,很多想做的操作根本没法做到,怎么办?怎么sqlserver就没有任何限制呢 这样吧!Declare a varchar2(20) ;Begin Select (Select dummy From dual) into a From dual;End; liuyi8903(西西) 也出错啊 你的什么环境?我这里是9.2已连接到 Oracle9i Enterprise Edition Release 9.2.0.1.0 已连接为 kdcnewSQL> SQL> Declare a varchar2(20) ; 2 Begin 3 Select (Select dummy From dual) into a From dual; 4 End; 5 6 /PL/SQL 过程成功完成SQL> 需要select col into v_var from dual 环境8i 其实我的意思不是要往dual表插入数据,这里只是为了方便说明才用它的。我的真正意图是想搞清楚pl/sql块是不是对sql语句有限制,比如对select子查询等。 STime时间 如何转换成字符串 大难题,求高手。。 多表查询 我用MERGE INTO怎么报这个错误 怎么样在另外一台机器上通过控制文件和归档日志恢复数据库? Oracle数据播放问题 oracle字符集...... 不能登录Management Server,请问怎么回事? 请教一个模糊查询的sql语句! worry:oracle数据库之间可不可以实现实时数据同步? oracle建立一个隐藏用户 oracle中sequence很多对性能有影响吗 救命呀!如何将一个用户的方案导出为SQL语句
Begin
Select (Select dummy From dual) From dual;
End;
Declare a varchar2 ;
Begin
Select (Select dummy From dual) into a From dual;
End;
a varchar2(20);
Begin
Select (Select dummy From dual) into a From dual;
dbms_output.put_line(' a ' || a);
End;这样看的更明确了.
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>
Begin
Select (Select dummy From dual) into a From dual;
End;
================
这个也不可以
我的也是8.1.6
在sqlplus 中也不能通过的.
怎么会有这么多的限制,很多想做的操作根本没法做到,怎么办?
怎么sqlserver就没有任何限制呢
Begin
Select (Select dummy From dual) into a From dual;
End;
也出错啊
我这里是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>
select col into v_var from dual
其实我的意思不是要往dual表插入数据,这里只是为了方便说明才用它的。
我的真正意图是想搞清楚pl/sql块是不是对sql语句有限制,比如对select子查询等。