在匿名块内显示选择结果

Pas*_*cal 8 oracle plsql oracle10g oracle-sqldeveloper pls-00428

我正在尝试在一个过程中调试一个SELECT,而我正在尝试使用一个匿名块.我希望SQL Developer只返回最后一个SELECT语句,但我收到错误:

ORA-06550: line 21, column 5:
PLS-00428: an INTO clause is expected in this SELECT statement
Run Code Online (Sandbox Code Playgroud)

在程序中,我有一个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;
Run Code Online (Sandbox Code Playgroud)

Ait*_*tor 10

你可以试试这个,轻松打印你的结果:

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;
Run Code Online (Sandbox Code Playgroud)