ORACLE 这分应该好拿--[?] (55分)

  • 主题发起人 主题发起人 zohzjf
  • 开始时间 开始时间
Z

zohzjf

Unregistered / Unconfirmed
GUEST, unregistred user!
我是按照《21天学通pl/sql》--这本书你大概看过;第16章,生成动态sql--411页
的例子写了下面的语句

DECLARE
SQL1 varchar2(250) ;
TYPE id_type is ref cursor ;
idtable id_type;
begin
SQL1:= 'SELECT khid from kehu where khid<10';
dbms_output.put_line(SQL1);
open idtable for SQL1;
end;

结果出现
--------------------
open idtable for fgsyh ;
*
ORA-06550: 行8、列20:
PLS-00103: 出现符号"FGSYH"在需要下列之一时:
select
------------------------
什么原因,什么意思,我几乎上把书上的东西原样来的呀;
另外worksheet上直接执行
begin
execute immediate ' update kehu set khid=0 where khid=1';
end;
报错为
----------------------------------
ORA-06550: 行2、列11:
PLS-00103: 出现符号"IMMEDIATE"在需要下列之一时:
:=.(@%;
符号":=在"IMMEDIATE"继续之前已插入。
----------------------
我也是按照书上写的呀。

怪我看书不细,不精,还是作者少写了,一些前提条件
比如 set XXXXXXX on 之类的;
正急者用呢!!!
 
SQL1:= 'SELECT khid from kehu where khid<10';
改为
SQL1:= 'select khid from kehu where khid<10';
 
没有用,原来是从 select -> SELECT
 
u should open the cursor first
 
??????????????????????????????
 
试着将fgsyh改变,该成update……具体语句试试看!
 
open idtable for fgsyh ?
fgsyh 是什么? 不是 open idtable for SQL1 吗?
 
execute immediate 在8i版本以上才支持(8.1.x 版本以上)
如果你的版本是8.0.x ,那么不支持
 
to pipi 谢谢;
是sql1,不过还还是不对,我查了一下版本 是8.0。5的;谢谢
 
8.0.5不支持,安装 8i 才能用 (8.1.*)
sql1,805好象也不支持,还是要8i
 
后退
顶部