我正在尝试以这种方式在存储过程中创建 XML:
PROCEDURE DeviceSearched(
xml_out OUT XMLTYPE
)
IS
BEGIN
SELECT
XMLELEMENT("Values",
XMLFOREST(de_brand)
)
INTO xml_out
FROM
tbldevice de
;
END DeviceSearched;
我试图以xml_out
这种方式在 c# 中阅读:
...
OracleCommand command = new OracleCommand(name, conn);
command.CommandType = CommandType.StoredProcedure;
command.BindByName = true;
...
command.Parameters.Add(new OracleParameter("xml_out", OracleDbType.XmlType, ParameterDirection.Output));
使用这种方法,问题有两个:
- Oracle 异常:“ORA-01422:精确提取返回的行数多于请求的行数”
- 如果我修改查询以获取一行,则该过程是可以的(我认为),但在 c# 中我没有任何结果。
我究竟做错了什么?
提前致谢