Coldfusion 8 से CLOB डेटा प्राप्त करना




coldfusion-8 (2)

सीएफ प्रशासक में अपनी डेटासाईट सेटिंग्स की जांच करें। उन्नत सेटिंग्स के अंतर्गत, ब्लॉब और CLOB डेटा को वापस करने की अनुमति देने के लिए चेक बॉक्स होते हैं। यदि वे अनचेक होते हैं तो संभवत: आपके प्रश्नों में छंटित आंकड़े निकाल सकते हैं

मैं अपने ओरेकल डाटाबेस से CLOB डेटा को पुनर्प्राप्त करने का प्रयास कर रहा हूं। कोड निम्न है:

<cfstoredproc datasource="#request.site.datasource#" procedure="GETPAGESWITHMETADATA" result="myResults">
    <cfprocparam cfsqltype="CF_SQL_VARCHAR" type="in" value="News">
    <cfprocparam cfsqltype="CF_SQL_VARCHAR" type="in" value="News Pages">
    <cfprocparam cfsqltype="CF_SQL_CLOB" type="out" variable="XML">
    <cfprocresult name="rs1">
</cfstoredproc>
<cfdump var="#myResults#">
<cfoutput>#XML#</cfoutput>
<cfcatch type="any">
    <cfdump var="#cfcatch#">
</cfcatch>
</cftry>

असल में, संग्रहीत कार्यविधि का उत्पादन होता है:

select dbms_xmlquery.getxml(queryCtx) INTO XML from dual;

मैंने सर्वर पर डेटा स्रोतों की जाँच की और "लंबे टेक्स्ट पुनर्प्राप्ति (CLOB) सक्षम करें"। प्रत्येक डेटा स्रोत के लिए विकल्प की जांच की जाती है

हैरानी की बात है, स्क्रीन पर XML परिणाम प्राप्त करने के बजाय, मुझे एक बहुत ही कम स्ट्रिंग मिलती है: [C @ 74897f5e

यह सामग्री के बजाय एक संभाल आईडी जैसा दिखता है

मैं XML की पूरी सामग्री कैसे प्राप्त करूं?

संदर्भ के लिए, डेटा स्रोत मैक्रोमीडिया ड्राइवरों को टीएनएस नाम के साथ प्रयोग कर रहा है: चालक वर्ग: मैक्रोमीडिया.जेडीबीसी। मैक्रोमीडियाड्राइवर


जैसा कि @ मार्कक्रगेर ने सुझाव दिया, इस प्रक्रिया को हल करने की प्रक्रिया से एक तालिका लौट गई। निम्न पीएल / एसक्यूएल कोड ने चाल किया:

create or replace
PACKAGE PCK_Commonspot
AS
type t_clob IS record (metadata CLOB) ;
type t_clob_tab IS TABLE OF t_clob;
FUNCTION GetPagesWithMetadataAsRS(FormName varchar2, CategoryName varchar2)
    RETURN t_clob_tab pipelined;
END PCK_Commonspot;

पैकेज निकाय में निम्न कोड है:

FUNCTION GetPagesWithMetadataAsRS(FormName varchar2, CategoryName varchar2)
    RETURN t_clob_tab pipelined
IS
    r t_clob;
 BEGIN
    GETPAGESWITHMETADATA(FormName, CategoryName, r.metadata) ;
    pipe row(r) ;
    RETURN;
END;

फ़ंक्शन GETPAGESWITHMETADATA एक ​​है जो CLOB को r.metadata में वापस लौटा रहा है, यह चाल एक पाइप टेबल लौटने के आसपास है।

यह कॉलल्ड फ्यूजन साइड पर बहुत अच्छा होता है क्योंकि कॉल वास्तव में सरल है:

<cfquery name="Test" datasource="myDS" maxrows="1">
    SELECT * FROM TABLE(PCK_Commonspot.GetPagesWithMetadataAsRS('abc','def'))
</cfquery>
<cfset XML = Xmlparse(Test.Metadata)>

धन्यवाद मार्क!