我在SQL*Plus WorkSheet调试一个存储过程,其中有字符串变量m_Sqls;它根据条件组合了一些字符,
执行完以后,只提示我"PL/SQL过程成功完成"。但我怎么能看到m_Sqls这个变量的结果呢?
执行完以后,只提示我"PL/SQL过程成功完成"。但我怎么能看到m_Sqls这个变量的结果呢?
解决方案 »
- oracle 中 lock table的问题
- oracle PL/SQL中的一个变量可以被赋予多个值么//
- 安装ORACLE的错误,在google 貌似找不到解决,求救各位
- 【求教】关于基于B/S系统的表字段的开放性管理
- 请教各位大侠oracle数据抽取问题
- 一个稍微有点难度的数据筛选(算法)问题,大虾们指教
- 求教:数据库结果集的合并问题
- 基础:在sqlplus中如何查看有哪些序列?如何查看表分区的分区名?
- 在设置自增字段时,写的触发器为什么不能执行?
- 那位高手解释一下在oracle中设计表的,时候为什么oracle公司不提供自动增长的功能的好处是什么?如果在设计的表的如何设置主关键键字(id)
- 如何在存储过程中对表名中带日期的多个表使用游标?
- oracle目录服务的配置案例?
declare
VARNAME varchar2(255);
begin
PROCNAME(...);
dbms_output.put_line(VARNAME);
end;
/
var v varchar2(200)
exec PROCNAME(..., :v);
print v
DECLARE
SSNO_1_ VARCHAR2(200) :='1,2,3,4,5';
sqls VARCHAR2(1500);
str VARCHAR2(1000);
i NUMBER(10,0);BEGIN
sqls :='SELECT SC_ID,SS_NO,SU_NO,SO_NO,SA_NO,ALARM_ID,ALARM_TIME,ALARM_DURATION,ALARM_LEVEL,CONFIRM_TIME,USERID,ALARM_RECOVERY FROM SA.ALARM_RECOVERY_RECORD WHERE Alarm_Time>=INSERTALARM_RECORD_FOR_R_TEST.StartTime_1
and Alarm_Time<=INSERTALARM_RECORD_FOR_R_TEST.EndTime_1 and ALARM_DURATION>=INSERTALARM_RECORD_FOR_R_TEST.Duration_ and';
str :='';
i :=1;
LOOP
IF((INSTR(SSNO_1_,',',i,1)) != 0) THEN
IF(i=1) THEN
str:=str || 'SS_NO=''' || SUBSTR(SSNO_1_,i,(INSTR(SSNO_1_,',',i,1)-i)) || '''';
i:=(INSTR(SSNO_1_,',',i,1)+1);
ELSE
str:=str || ' or SS_NO=''' || SUBSTR(SSNO_1_,i,(INSTR(SSNO_1_,',',i,1)-i)) || '''';
i:=(INSTR(SSNO_1_,',',i,1)+1);
END IF;
--INSERT INTO zc.tmp(v_field_id) VALUES(i);
ELSE
str:=str || ' or SS_NO=''' || SUBSTR(SSNO_1_,i) || ''')';
--INSERT INTO zc.tmp(v_field_id) VALUES(i);
EXIT;
END IF;
END LOOP;
sqls := sqls || str || ';';
DBMS_OUTPUT.PUT_LINE(sqls);
END;
在WorkSheet下方出现错误:DECLARE
*
ERROR 位于第 1 行:
ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
ORA-06512: 在"SYS.DBMS_OUTPUT", line 35
ORA-06512: 在"SYS.DBMS_OUTPUT", line 133
ORA-06512: 在line 32
在过程、触发器中第二楼 henghowzc(等待) 是个好法子。第三楼的 Print 能好使吗?