+ -
当前位置:首页 → 问答吧 → plsql的问题

plsql的问题

时间:2011-11-25

来源:互联网

请教问题,程序段如下:
 DECLARE  
  CURSOR c IS SELECT 名称 FROM ROAD0;
  r_name VARCHAR2(100);
  x_var VARCHAR2(100);
  s_var VARCHAR2(100);
  d_var VARCHAR2(100);
  n NUMBER(10);
  m NUMBER(10);
  n_var VARCHAR2(100);
  i NUMBER(10);
  j NUMBER(10):=5;
  BEGIN
  OPEN c;
  FETCH c INTO r_name; 
  FETCH c INTO r_name; 
  LOOP
  FETCH c INTO r_name; 
  DBMS_OUTPUT.put_line( r_name); 
  FOR d IN( SELECT * FROM RAWDATA0 WHERE ADDRESS LIKE '%'||r_name||'%号'AND ADDRESS NOT LIKE '%

村%'AND ADDRESS NOT LIKE '%-%'AND ADDRESS NOT LIKE '%巷%'AND ADDRESS NOT LIKE '%港%'AND ADDRESS NOT LIKE 

'%街%'AND ADDRESS NOT LIKE '%湖%') LOOP
   
  d_var:=d.address ;
  n:=INSTR(d_var,'号',1);
  DBMS_OUTPUT.put_line( n );
  m:=INSTR(d_var,'路',-1,1);
  DBMS_OUTPUT.put_line( m );
  n_var:=substr(d_var,m+1,n-m-1);
  DBMS_OUTPUT.put_line( n_var );
  i:=TO_NUMBER(n_var);
   
  IF i>j THEN
  j:=i;
  END IF;  
   
   
  END LOOP;
  DBMS_OUTPUT.put_line(j); 
  UPDATE ROAD0
  SET 左侧终止门牌号=j
  WHERE 名称=r_name;
  commit;
  EXIT WHEN c%NOTFOUND;  
  END LOOP;  
  END;

为什么在循环中改变的 j 值, 出来之后没有变化? 初值是多少还是多少。 还有 我是在PLSQL中编的, 运行过程中手动中断, 看输出, 为什么没有 内循环里的输出呢?

作者: wangcongywzq   发布时间: 2011-11-25

PLSQL可以单步调试的。

作者: yixilan   发布时间: 2011-11-25

输出在PL/SQL Developer的Output标签中显示。如下图所示。

作者: LuiseRADL   发布时间: 2011-11-25