我正在尝试调试过程中的 SELECT,并且我正在尝试使用匿名块。我希望 SQL Developer 只返回最后一个 SELECT 语句,但我收到错误:
ORA-06550: line 21, column 5:
PLS-00428: an INTO clause is expected in this SELECT statement
在该过程中,我有一个用于该选择的 INTO,但是有没有一种简单的方法可以让我简单地获取最后一个 SELECT 语句的结果以进行调试?我使用匿名块和变量,以便代码与过程中的实际内容尽可能相似,这样我就不必更改代码
set serveroutput on format wrapped;
DECLARE
p_cd_doc_type number;
p_dc_doc_code varchar2(200);
p_dt_base date;
p_qt_days number;
p_vl_mov_total number;
p_qt_transac number;
v_dt_max date;
v_dt_min date;
begin
p_dt_base := sysdate;
p_qt_days := 1;
v_dt_max := trunc(p_dt_base) + 1;
v_dt_min := v_dt_max - p_qt_days;
p_vl_mov_total := 0;
DBMS_OUTPUT.PUT_LINE('v_dt_max = ' || v_dt_max);
DBMS_OUTPUT.PUT_LINE('v_dt_min = ' || v_dt_min);
select *
from tb_cad_cliente a join tb_trn_transacao b
on a.cd_cliente = b.cd_cliente
where a.cd_doc_type = p_cd_doc_type
and a.dc_doc_code = p_dc_doc_code
and b.dt_row between v_dt_min and v_dt_max
and b.cd_status = 3;
end;
您可以尝试使用此方法轻松打印结果:
declare
your_variable varchar2(19);
BEGIN
DBMS_OUTPUT.PUT_LINE('init..');
FOR x IN (SELECT your_column
FROM you_table
where rownum<2
order by 1)
LOOP
DBMS_OUTPUT.PUT_LINE(x.your_column);
END LOOP;
END;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)