我们如何在不使用curson和类型的情况下从oracle中的函数返回数据集结果。
我的问题是,当我的函数返回结果时,结果以逗号(,)分隔。我想要表格格式的结果...
我的示例查询:
创建或替换函数res_set_2(obj_id VARCHAR2) 返回SYS_REFCURSOR如 my_cursor SYS_REFCURSOR;开始 开放my_cursor 从表 1 中选择 t1.*、t2.* t1 在 t1.id = t2.id 上连接表 2 t2,其中 t2.bankingId=obj_id; 返回my_cursor;结束;
建议我最好的解决方案..
提前谢谢。
您可以使用 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
至于数据集,也许这篇文章可以提供帮助