我正在尝试调试过程中的SELECT,并且尝试使用匿名块来对此进行调试.我希望该SQL Developer仅返回最后一个SELECT语句,但出现错误:
I'm trying to debug a SELECT inside a procedure, and I'm trying to this using a anonymous block. I would like that SQL Developer simply return the last SELECT statement, but I get the error:
ORA-06550: line 21, column 5: PLS-00428: an INTO clause is expected in this SELECT statement在该过程中,我有一个用于该选择的INTO,但是是否有一种简单的方法可以简单地获取用于调试的最后一个SELECT语句的结果?我使用匿名块和变量,以使代码与过程中的内容尽可能相似,从而不必更改代码
Inside the procedure, I have an INTO for that select, but is there a simple way that I can simply get the results for the last SELECT statement for my debugging? I'm using anonymous block and variables so that the code is as similar as possible from what's actually inside the procedure, so that I don't have to change the code
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;推荐答案
您可以尝试使用此方法轻松打印结果:
You can try with this, to print your result easily:
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;更多推荐
在匿名块内显示选择结果
发布评论