DECLARE
V_NUM NUMBER := 0;
SQL_STRING VARCHAR2(100);
V_NAME INFO_STU_1.NAME%TYPE;
BEGIN
SQL_STRING := 'select t.name from info_stu_1 t where t.id = :1';
WHILE V_NUM <> -1 LOOP
V_NUM := &C_NUM;
EXECUTE IMMEDIATE SQL_STRING
INTO V_NAME
USING V_NUM;
DBMS_OUTPUT.PUT_LINE(V_NAME);
END LOOP;
END;
V_NUM NUMBER := 0;
SQL_STRING VARCHAR2(100);
V_NAME INFO_STU_1.NAME%TYPE;
BEGIN
SQL_STRING := 'select t.name from info_stu_1 t where t.id = :1';
WHILE V_NUM <> -1 LOOP
V_NUM := &C_NUM;
EXECUTE IMMEDIATE SQL_STRING
INTO V_NAME
USING V_NUM;
DBMS_OUTPUT.PUT_LINE(V_NAME);
END LOOP;
END;
解决方案 »
- 装好10gR1软件 为什么有这么三个服务
- 求救:字符集问题(在线急等)
- 查询语句:多表按相同条件分类汇总并把汇总值相加,并取出主表分类汇总后的最新记录字段做比较
- 背井离乡来求问~~~~~~
- 在作插入操作时,除了单引号会引起异常外,还有哪些字符可能引起异常?
- oracle+tomcat5.5的端口问题,在线等
- distinct跟group by的区别
- 各位,我在java中连接oracle数据库,出现了点问题,请问是什么原因,谢谢!
- ORACLE菜鸟问题, 大家请进!!!HELP 再线等待
- 登录不了oracle了,监听和服务都开启的呀
- oracle 获取表名,并对变量表名进行查询
- oracle 保留 case when 上一次的值 在线等。。
oracle会先扫描代码,然后把变量替换好后运行,这样你就一直在取某个t.id的数据。死循环了。。
DECLARE
V_NUM NUMBER := 0;
SQL_STRING VARCHAR2(100);
V_NAME INFO_STU_1.NAME%TYPE;
BEGIN
SQL_STRING := 'select t.name from info_stu_1 t where t.id = :1';
WHILE V_NUM <> -1 LOOP
V_NUM := &C_NUM;--只会执行一次
EXECUTE IMMEDIATE SQL_STRING
INTO V_NAME
USING V_NUM;
DBMS_OUTPUT.PUT_LINE(V_NAME);
END LOOP;
END; 明显死循环了,连退出条件都没有
我的意思是循环每执行一次,输入一次 V_NUM := &C_NUM;
直到输入的为-1,循环结束
plsql engine 不认啊