2015-06-03 8 views
5

¥ विभाजक के साथ एक यूटीएफ -8 फ़ाइल लोड करने का प्रयास करते समय, यह चरित्र को पाता है जब यह फ़ील्ड को अलग नहीं करता है। हमें स्तंभ आकार से अधिक मान से ओआरए-128 99 त्रुटि मिलती है, क्योंकि यह पूरी पंक्ति को पहले कॉलम में रखने की कोशिश करती है।एसक्यूएल * लोडर डिलीमीटर को पहचान नहीं करता है "¥"

UTF-8 में, ¥Â ¥ (C2A5) है, लेकिन यह है कि यह C2C2A5 खोजने की कोशिश कर रहा है लगता है।

डेटाबेस सेटिंग्स

NLS_LANGUAGE SPANISH 
NLS_TERRITORY SPAIN 
NLS_CURRENCY ? 
NLS_ISO_CURRENCY SPAIN 
NLS_NUMERIC_CHARACTERS ,. 
NLS_CHARACTERSET WE8ISO8859P15 
NLS_CALENDAR GREGORIAN 
NLS_DATE_FORMAT DD/MM/RR 
NLS_DATE_LANGUAGE SPANISH 
NLS_SORT SPANISH 
NLS_TIME_FORMAT HH24:MI:SSXFF 
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF 
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR 
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR 
NLS_DUAL_CURRENCY ? 
NLS_COMP BINARY 
NLS_LENGTH_SEMANTICS BYTE 
NLS_NCHAR_CONV_EXCP FALSE 
NLS_NCHAR_CHARACTERSET AL16UTF16 
NLS_RDBMS_VERSION 11.2.0.3.0 

हम साथ की कोशिश की है इस प्रकार हैं:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 
NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252 

हम स्पेनिश वातावरण के साथ विंडोज 7 मशीन पर एक कमांड विंडो से एसक्यूएल * लोडर चल रहे हैं।

नियंत्रण फ़ाइल:

LOAD DATA 
CHARACTERSET UTF8 
INFILE 'C:\tmp\xxxy.txt' 
BADFILE 'C:\tmp\xxxy.bad' 
TRUNCATE INTO TABLE SAMPLE.TEST_CAR_VENCIMI_INTERMED 
fields terminated by "¥" 
TRAILING NULLCOLS 
(
CODE    CHAR "upper(ltrim(rtrim(:CODE)))", 
CIF    CHAR "upper(ltrim(rtrim(:CIF)))", 
CODIGO_PRESTAMO CHAR "upper(ltrim(rtrim(:CODIGO_PRESTAMO)))" 
) 

नमूना डेटा फ़ाइल:

21AK0100¥P11111111F¥910002¥000000000106013.64¥666666666¥[email protected]¥address¥11111¥Name¥Surname 1¥Surname 2¥[email protected]¥666666666 
+0

एक शुरुआती बिंदु के रूप में, धारणा पर यह लाइन के नीचे कहीं उलझन में है, आपका डेटाबेस चरित्र सेट, एनएलएस_एलएएनजी सेटिंग, और ओएस कैरेक्टरेट क्या हैं? क्या आप एक उदाहरण नियंत्रण फ़ाइल और डमी डेटा जोड़ सकते हैं जो समस्या का प्रदर्शन करता है? या यदि फ़ाइल को सर्वर पर रखा जा सकता है, तो क्या आप SQL \ * लोडर की बजाय बाहरी तालिका का उपयोग करके स्वीकार कर सकते हैं? –

+0

कृपया उस जानकारी को एक संपादन के रूप में जोड़ने के लिए इसे पढ़ने योग्य बनाने के लिए स्वरूपित किया जा सकता है, टिप्पणी के रूप में नहीं। आपको ऑपरेटिंग सिस्टम charaterset भी, और आपके NLS_LANG पर्यावरण चर की आवश्यकता है। (या SQL \ * प्लस से nls_session_parameters उसी खाते पर चल रहे हैं जो आप SQL \ * लोडर चला रहे हैं, लेकिन NLS_LANG छोटा है) –

+0

धन्यवाद @AlexPoole, मैंने – luis

उत्तर

1

आप एक UTF8 चरित्र और एक UTF8 फ़ाइल स्वरूप (मुझे लगता है कि) का उपयोग कर रहे के बाद से सत्र कि SQL चलाता है के लिए * लोडर ने आपके NLS_LANG पर्यावरण चर को "SPANISH_SPAIN.UTF8" पर सेट किया है।

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