2010-11-11 23 views
10

फ़ाइल स्पूल मैं इस तरह एक स्क्रिप्ट है:कॉलम की अधिकतम चौड़ाई

SET ECHO OFF 
SET FEEDBACK OFF 
SET VERIFY OFF 
SET HEADING OFF 
SET TERMOUT OFF 
SET TRIMOUT ON 
SET TRIMSPOOL ON 
SET WRAP OFF 
SET LINESIZE 32000 
SET LONG 32000 
SET LONGCHUNKSIZE 32000 
SET SERVEROUT ON 

SPOOL C:\Export.txt 

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....))) 
    FROM --TABLENAME-- 
WHERE --CONDITIONS-- 

उत्पादन जटिल एक्सएमएल के अंदर के साथ पंक्तियों की एक सूची वाली फ़ाइल होना चाहिए, लेकिन जब एक्सएमएल की लंबाई उत्पन्न 2000 से अधिक है, एसक्यूएलप्लस 2000 तक ट्रिम करता है और अगली पंक्ति में जाता है।

SQLPlus को उसी पंक्ति में सभी डेटा लिखने के लिए मजबूर करने का एक तरीका है?

+1

यह ठीक होना चाहिए। आप फ़ाइल को किसके साथ देख रहे हैं - क्या आपके संपादक की रेखा लंबाई सीमा है? मैं सोच रहा हूं कि स्पूल वास्तव में ठीक है, लेकिन जब आप कोशिश करते हैं और देखते हैं तो यह छोटा हो जाता है। –

उत्तर

0

आउटपुट को क्लॉब में बदलने के लिए getClobVal() का उपयोग करने के बारे में कैसे?

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....))).getClobVal() 
    FROM --TABLENAME-- 
WHERE --CONDITIONS-- 
5

सिर्फ सही सेट आदेशों के बाद निम्न पंक्ति जोड़ें:

COL ColumnName FORMAT A32000 

जहां columnName अपने SELECT कथन में एक्सएमएल स्तंभ के लिए एक अन्य नाम (यदि आप किसी उपनाम जोड़ने की आवश्यकता होगी) है।

यह उस कॉलम के लिए अधिकतम चौड़ाई सेट करता है, जो डिफ़ॉल्ट रूप से 2000 वर्ण है। ध्यान दें कि जब आप COL FORATAT को 60000 वर्णों के रूप में उच्च सेट कर सकते हैं, तो आप वास्तव में कभी भी एक पंक्ति पर प्राप्त करेंगे, जिसमें स्क्लप्लस है, क्योंकि यह LINESIZE के लिए ऊपरी सीमा है।

+0

यह बहुत उपयोगी है जब आप [DBMS_METADATA.GET_DDL() '] (http://dba.stackexchange.com/a/19506/2660) का उपयोग करके डीडीएल को स्क्रिप्ट कर रहे हैं। –

2

क्या आप विंडोज़ पर हैं? मुझे यह वही समस्या थी और न ही दो अन्य उत्तरों में से मेरी मदद की (सीधे, मुझे एक और चीज करना पड़ा)।

[note3] Set long big_number तो आप किसी भी लंबे समय तक या CLOB कॉलम में एक जटिल ट्रिगर या देखने के लिए, या पाठ की परिभाषा देख सकते हैं: this article on setting up SQL*Plus for Windows की सलाह लेखक नोट्स के बाद।

मैंने अपना SET LONG 32000 (मेरी सबसे लंबी लाइन 2000 वर्णों से थोड़ा कम थी) सेट की है और इससे मेरे लिए समस्या हल हो गई है।

संबंधित मुद्दे