Problem Oracle Utilities Adapter Receive Port Procedure (Full Version)

All Forums >> [BizTalk Utilities] >> BizTalk 2004/2006 Utilities and Adapters



Message


robert38 -> Problem Oracle Utilities Adapter Receive Port Procedure (21 March 2008)

Type of SQL = Procedure
Provider Microsoft .NET Provider for Oracle
Receive (Port).

When I want to generate a XSD schema for a stored procedure something goes wrong.
No Records were returned. An Adapter Schema cannot be generated.
Parameter Name : Records
Actual value was 0.

I've tried the following functions.

CREATE
OR REPLACE PACKAGE BODY AQJ$BERICHTEN IS
PROCEDURE verstuur
( p_topic IN VARCHAR2
, p_bericht IN CLOB
, p_envelop IN mis_own.to_envelop
, p_prioriteit IN BINARY_INTEGER DEFAULT 1
, p_bericht_id OUT RAW
)
--
-- RWK, 25-02-2008
-- Deze procedure zal gebruikt worden om standaard JMS-berichten te
-- versturen via een advanced queue. Het bericht wordt in een XML-
-- structuur gepakt en uiteindelijk als JMS tekstbericht (datatype
-- SYS.aq$_jms_text_message, subtype van SYS.aq$_jms_message) op
-- de queue met de naam p_topic (naam afstemmen met Architectuur)
-- gezet.
--
IS
t_verzendopties dbms_aq
.enqueue_options_t;
t_berichteigenschappen dbms_aq
.message_properties_t;
t_jms_bericht SYS
.aq$_jms_message
:= SYS.aq$_jms_message.construct
(dbms_aq.jms_text_message);
BEGIN
t_berichteigenschappen
.priority := p_prioriteit;
--
-- Versleutel de parameters tot een XML-bericht, althans, een bericht
-- dat gevalideerd is als zijnde XML, maar het wordt uiteindelijk als
-- VARCHAR2 richting de set_text methode gestuurd. Deze versleutelt het
-- bericht naar een formaat dat past in het aq$_jms_message type. Als
-- het bericht op of onder de 4000 karakters zit, komt de inhoud in het
-- veld text_vc terecht. Boven de 4000 karakters wordt de inhoud in het
-- veld text_lob geplaatst.
--
t_jms_bericht
.set_text
( mis_own.mis$berichten.xml_bericht
( p_berichtinhoud => p_bericht
, p_envelop => p_envelop
)
);
/*
( mis$berichten.xml_bericht
( p_berichtinhoud => '<ZoMaarEenWaarde>R</ZoMaarEenWaarde>'
, p_envelop => to_envelop
( 'Uithuizing'
, systimestamp
, 1
, 0
, tt_attributen
( to_attribuut ('EAN-code','8712345678901')
)
)
)
);
*/

--
-- Zet het bericht op de queue genaamd "p_topic". De naamgeving van
-- zo'n topic is afgestemd met de Architectuur-afdeling.
--
dbms_aq
.enqueue
( queue_name => p_topic
, enqueue_options => t_verzendopties
, message_properties => t_berichteigenschappen
, payload => t_jms_bericht
, msgid => p_bericht_id
);
END verstuur
;
PROCEDURE ontvang
( p_topic IN VARCHAR2
, p_bericht_id OUT RAW
, p_bericht OUT CLOB
)
--
-- RWK, 25-02-2008
-- Deze procedure is waarschijnlijk niet nodig in productie, omdat
-- het lezen van berichten uit de queue door een externe partij zal
-- gaan gebeuren en waarschijnlijk niet vanuit een database met
-- PL/SQL procedures. De procedure is dan ook gemaakt voor
-- testdoeleinden.
--
IS
t_ontvangstopties dbms_aq
.dequeue_options_t;
t_berichteigenschappen dbms_aq
.message_properties_t;
t_jms_bericht sys
.aq$_jms_message;
BEGIN
t_ontvangstopties
.wait := dbms_aq.no_wait
;
dbms_aq
.dequeue
( queue_name => p_topic
, dequeue_options => t_ontvangstopties
, message_properties => t_berichteigenschappen
, payload => t_jms_bericht
, msgid => p_bericht_id
);
t_jms_bericht
.get_text(p_bericht)
;
END ontvang
;
FUNCTION clob_refcursor_van_queue
( p_topic IN VARCHAR2
) RETURN SYS_REFCURSOR
--
-- RWK, 20-03-2008
--
IS
t_ontvangstopties dbms_aq
.dequeue_options_t;
t_berichteigenschappen dbms_aq
.message_properties_t;
t_jms_bericht sys
.aq$_jms_message;
t_bericht_id
RAW(616617);
t_bericht
CLOB;
t_refcursor SYS_REFCURSOR
;
BEGIN
t_ontvangstopties
.wait := dbms_aq.no_wait
;
dbms_aq
.dequeue
( queue_name => p_topic
, dequeue_options => t_ontvangstopties
, message_properties => t_berichteigenschappen
, payload => t_jms_bericht
, msgid => t_bericht_id
);
t_jms_bericht
.get_text(t_bericht)
;
OPEN t_refcursor FOR SELECT t_bericht FROM DUAL;
RETURN t_refcursor;
END clob_refcursor_van_queue
;
FUNCTION xml_refcursor_van_queue
( p_topic IN VARCHAR2
) RETURN SYS_REFCURSOR
--
-- RWK, 20-03-2008
--
IS
t_ontvangstopties dbms_aq
.dequeue_options_t;
t_berichteigenschappen dbms_aq
.message_properties_t;
t_jms_bericht sys
.aq$_jms_message;
t_bericht_id
RAW(820821);
t_bericht
CLOB;
t_refcursor SYS_REFCURSOR
;
BEGIN
t_ontvangstopties
.wait := dbms_aq.no_wait
;
dbms_aq
.dequeue
( queue_name => p_topic
, dequeue_options => t_ontvangstopties
, message_properties => t_berichteigenschappen
, payload => t_jms_bericht
, msgid => t_bericht_id
);
t_jms_bericht
.get_text(t_bericht)
;
OPEN t_refcursor FOR SELECT XMLTYPE(t_bericht) FROM DUAL;
RETURN t_refcursor;
END xml_refcursor_van_queue
;
FUNCTION varchar2_refcursor_van_queue
( p_topic IN VARCHAR2
) RETURN SYS_REFCURSOR
--
-- RWK, 20-03-2008
--
IS
t_ontvangstopties dbms_aq
.dequeue_options_t;
t_berichteigenschappen dbms_aq
.message_properties_t;
t_jms_bericht sys
.aq$_jms_message;
t_bericht_id
RAW(10321033);
t_bericht
VARCHAR2(4000);
t_refcursor SYS_REFCURSOR
;
BEGIN
t_ontvangstopties
.wait := dbms_aq.no_wait
;
dbms_aq
.dequeue
( queue_name => p_topic
, dequeue_options => t_ontvangstopties
, message_properties => t_berichteigenschappen
, payload => t_jms_bericht
, msgid => t_bericht_id
);
t_jms_bericht
.get_text(t_bericht)
;
OPEN t_refcursor FOR SELECT t_bericht FROM DUAL;
RETURN t_refcursor;
END varchar2_refcursor_van_queue
;
END
AQJ$BERICHTEN;
/





robert38 -> RE: Problem Oracle Utilities Adapter Receive Port Procedure (21 March 2008)

I found this Microsoft Article http://msdn2.microsoft.com/en-us/library/bw9eczdk.aspx I hope the Oracle DB Administrator can fix it so I can generate the schemas




Pieter -> RE: Problem Oracle Utilities Adapter Receive Port Procedure (1 April 2008)

You need to utilize a REF CURSOR in order to return records.




Page: [1]

Valid CSS!




Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI
0.046875