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)