如何在Oracle存储过程中返回xmltypes的结果

时间:2012-07-11 15:04:42

标签: xml oracle plsql oracle11g

我有存储过程:

CREATE OR REPLACE udp_get_employeeaddress ( result_set out sys_refcursor )
AS
BEGIN
   open result_set for
   select xmlcolumn from employees where rownum < 3;

END udp_get_employees;

当我执行此sp时,在SQL Developer

中的输出变量中返回以下内容

XML_COLUMN


oracle.jdbc.driver.OracleSQLXML@49e57334

仅取出SELECT语句

select xmlcolumn from employees where rownum < 3;

返回xml结果

XML_COLUMN


该表定义如下:

CREATE TABLE "EMP"."Employees"
  (
    "ID"              NUMBER,
    "XML_COLUMN" "XMLTYPE"
  )
  xmltype column "XML_COLUMN" STORE AS BINARY XML
  xmlschema "http://www.web.com/emp.xsd"
  element "root"  

我希望我的存储过程返回与独立查询相同的(结果集)。

这是我第一次涉足Oracle / xml db,因为我主要是SQL Server DB Developer。非常感谢任何帮助。

由于

更新:表格定义/查询结果

1 个答案:

答案 0 :(得分:3)

这对你的程序来说不是问题,但是SQL Developer如何扼杀输出变量似乎很奇怪 - 我无法看到在该选项卡中显示该实际内容的方法。

作为替代方案,您可以通过从SQL工作表(作为脚本(F5)运行)调用该过程来查看该过程:

var rc refcursor;
exec udp_get_employeeaddress(:rc);
print :rc;