0

私はストアドプロシージャを持っています:

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"  

ストアド プロシージャがスタンドアロン クエリと同じ (結果セット) を返すことを期待しています。

私は主に SQL Server DB 開発者だったので、これは Oracle / xml db への最初の進出です。どんな助けでも大歓迎です。

ありがとう

UPDATED : テーブル定義/クエリ結果

4

1 に答える 1

3

これはプロシージャの問題ではありませんが、SQLDeveloperが出力変数をどのように検索するかについては奇妙なようです。そのタブに実際のコンテンツを表示する方法がわかりません。

別の方法として、SQLワークシート(スクリプト(F5)として実行)からプロシージャを呼び出すことにより、プロシージャが機能していることを確認できます。

var rc refcursor;
exec udp_get_employeeaddress(:rc);
print :rc;
于 2012-07-11T16:15:04.270 に答える