我在Oracle PL/SQL中有一个巨大的动态查询。我的要求是以表格的形式显示这个查询输出。我已经将动态查询保存在一个变量中。现在使用光标循环它。但输出不是表格的形式。下面是一个简短的例子:
set serveroutput on
declare
TYPE EmpCurTyp IS REF CURSOR;
v_emp_cursor EmpCurTyp;
var1 varchar2(1000) :='select document_id from blu_payment_report_history' ;
var2 varchar(100) := ' where rownum <=3 ';
output varchar(100);
finalvar varchar(100);
begin
finalvar:= var1 || ' ' || var2;
OPEN v_emp_cursor FOR finalvar;
LOOP
FETCH v_emp_cursor INTO output;
dbms_output.put_line(output);
EXIT WHEN v_emp_cursor%NOTFOUND;
END LOOP;
CLOSE v_emp_cursor;
end;
如何修改上面的代码以表格的形式输出。注意:这只是一个包含一列的示例。我的实际查询有10列。
下面是我的查询的输出。但这不是表格的形式:
1条答案
按热度按时间9rbhqvlz1#
创建一个程序:
这将返回一个包含行和列的结果集。
你如何选择显示是无关紧要的;光标将包含行和列。
在PL/SQL developer中,您需要使用您的代码返回结果集并将光标显示到控制台:
在PowerBI中,您将调用存储过程,然后处理返回的游标;你不需要PL/SQL Package 器来显示返回的结果。
在Oracle 12和更高版本中,您还可以使用
DBMS_SQL.RETURN_RESULT
隐式返回游标,而不是返回游标。如果您的客户端支持,则用途:
调用该过程,该过程将隐式返回游标中包含的结果集。