首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle中的select into语句的动态查询解决方案

2012-02-17 
oracle中的select into语句的动态查询具体的意思是这样的:CREATEORREPLACEFUNCTIONtestExecuteRETURNNUMBE

oracle中的select into语句的动态查询
具体的意思是这样的:
CREATE   OR   REPLACE   FUNCTION   testExecute   RETURN   NUMBER   IS
tmpVar   NUMBER;
sqltemp   varchar2(200);
 
BEGIN
      tmpVar   :=   0;
     
      sqltemp   :=   'select   count(*)   into   tmpVar   from   gg_book   ';
     
      --execute   immediate   sqltemp;
     
      select   count(*)   into   tmpVar   from   gg_book;
     
     
      RETURN   tmpVar;
     
END   testExecute;

我使用--execute   immediate   sqltemp;就提示错误,请那位大哥给点提示,谢谢了!

[解决办法]
execute immediate 主要用来执行DDL,函数中不能使用DDL。
查询时直接执行select into即可,不要用execute immediate。
[解决办法]
execute immediate
用来执行单行操作。select into属于当行操作时可行的!
[解决办法]
sqltemp := 'select count(*) from gg_book ';

execute immediate sqltemp into tmpVar; --应该这样使用

热点排行