当使用给出DBMS_OUTPUT.CHARARR结果的DBMS_OUTPUT.GET_LINES时,如何将其转换为varchar2?我想使用DBMS_OUTPUT.GET_LINES来获取我的所有DBMS_PUTLINE语句,并将它们作为字符串返回给调用程序。如何将DBMS_OUTPUT.GET_LINES转换为VARCHAR2?
数据库:Oracle 12c中
PLSQL版本:版本11.0.6.1776
declare
-- Non-scalar parameters require additional processing
v_Data DBMS_OUTPUT.CHARARR;
v_NumLines NUMBER;
begin
-- Call the procedure
-- Procedure that will generate DMBS_OUTPUT.PUT_LINEs
executeProcFoo();
v_NumLines := 1000;
DBMS_OUTPUT.GET_LINES(v_Data, v_NumLines);
FOR v_Counter IN 1..v_NumLines LOOP
--output putlines from get_lines
DBMS_OUTPUT.put_line(v_Data(v_Counter));
END LOOP;
end;
'dbms_output.chararr'已经是一个'varchar2'数组。你把它转换成'varchar2'是什么意思?你想要一个长串吗?或者您是否需要将其发布为与您的调用框架更兼容的其他集合类型? –
是一个长字符串。我想将结果作为一个字符串返回给调用的Java应用程序。 – haju
为什么?当然Java有数组?但无论如何,只需循环遍历数组,将其附加到合适的文本变量。我仍然没有看到技术问题。 –