补充:如果不是动态SQL语句则不会出错。如:
select count(*) into iCnt from t1;
select count(*) into iCnt from t1;
解决方案 »
- 求oracle SQL修改多行记录
- 用子查询来create一个表后。新表是不是就自动有相应子查询的数据了?
- oracle 定时任务突然停了
- Oracle 10g比9i中新增加的函数(比如wmsys.wm_concat)有哪些?
- windows server 2008 下安装Oracle10g的问题
- 关于RANK OVER的奇怪问题
- 如何编写判断2个数据库之间表中内容是否想等的sql脚本
- 关于oracle结构方面(50)
- 我做了oracle系统,可是当我输入日文入数据库的时候出错
- PL/SQL Developer 中文显示乱码,服务器和客户端编码都设置一致了,还是显示乱码。
- 一个复杂的sql语句,你也来试一下。
- 动态删除汇总和为0的列,sql(或者存储过程)如何写
EXECUTE IMMEDIATE d_sql into iCnt;
execute immediate d_sql into iCnt;
如果你想使用,你需使用dbms_sql包了,机械出版的那一本pl/sql书讲得很详细。
EXECUTE IMMEDIATE d_sql into iCnt;
SQL> declare
2 iCnt NUMBER;
3 d_sql varchar2(50);
4
5 begin
6 d_sql := 'select count(*) from newsindex';
7 EXECUTE IMMEDIATE d_sql into icnt;
8 dbms_output.put_line(icnt);
9 end;
10 /
16PL/SQL procedure successfully completed
2 iCnt NUMBER;
3 d_sql varchar2(50);
4 type t_sor is ref cursor;
5 v_sor t_sor;
6 begin
7 d_sql := 'select count(*) from newsindex';
8 open v_sor for d_sql;
9 fetch v_sor into icnt;
10 dbms_output.put_line(icnt);
11 close v_sor;
12 end;
13 /
16PL/SQL procedure successfully completed