如何在不使用curson和type的情况下从oracle函数返回数据集结果。
我的问题是,当我的函数返回结果时,结果以逗号(,)分隔。我希望结果以表格格式...
我的示例查询:
CREATE OR REPLACE FUNCTION res_set_2(obj_id VARCHAR2) RETURN SYS_REFCURSOR AS my_cursor SYS_REFCURSOR; BEGIN OPEN my_cursor FOR SELECT t1.*, t2.* FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id WHERE t2.bankingId=obj_id; RETURN my_cursor; END;
建议我最好的解决方案..
先谢谢。
答案 0 :(得分:0)
您可以使用amlagg
以XML格式获取查询结果CREATE OR REPLACE FUNCTION res_set_2(obj_id VARCHAR2)
RETURN varchar2 AS
my_xml varchar2(32767);
BEGIN
SELECT xmlelement("DATASET", xmlagg(
xmlelement("ROW", xmlforest(t1.col1, t1.col2, ..., t2.col1, ...))
)).getStringVal()
INTO my_xml
FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id
WHERE t2.bankingId=obj_id;
RETURN my_xml;
END;
请注意,为了简单起见,我返回了varchar2,我从未尝试过在C#中获取XMLTYPE
对于DataSet,也许this post可以提供帮助