Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Sqldr- टर्मिनेटर टर्मिनेटर टर्मिनेट और संलग्न फ़ील्ड के बाद नहीं मिला

अपने प्रदाता से डेटा फ़ाइल को ठीक करने के लिए कहना एक विकल्प नहीं हो सकता है, लेकिन मुझे अंततः एक समाधान मिला जिसके लिए आपको सभी फ़ील्ड के बजाय प्रत्येक फ़ील्ड के लिए अपना "संलग्न" वर्ण निर्दिष्ट करने के लिए अपनी नियंत्रण फ़ाइल को थोड़ा अपडेट करना होगा।

मेरे मामले के लिए, मेरे पास एक मुद्दा था जहां अगर [first_name] फ़ील्ड डबल-कोट्स के साथ एक उपनाम लपेटकर आया तो यह लोड नहीं होगा। (ईजी:जोनाथन "जॉन")। डेटा फ़ाइल में नाम "जोनाथन "जॉन"" के रूप में दिखाया गया था। तो "संलग्न" एक त्रुटि फेंक रहा था क्योंकि मूल्य के चारों ओर डबल कोट्स थे और वैल्यू ("जॉन") के हिस्से के आसपास डबल कोट्स थे। इसलिए यह निर्दिष्ट करने के बजाय कि मान को दोहरे उद्धरण चिह्नों द्वारा संलग्न किया जाना चाहिए, मैंने उसे छोड़ दिया और स्ट्रिंग से उद्धरणों को मैन्युअल रूप से हटा दिया।

Load Data
APPEND
INTO TABLE MyDataTable
fields terminated by ","     ---- Noticed i omitted the "enclosed by"
TRAILING NULLCOLS
(
  column1 enclosed by '"',   --- Specified "enclosed by" here for all cols
  column2 enclosed by '"',
  FIRST_NAME "replace(substr(:FIRST_NAME,2, length(:FIRST_NAME)-2), chr(34) || chr(34), chr(34))", -- Omitted "enclosed by".  substr removes doublequotes, replace fixes double quotes showing up twice.  chr(34) is charcode for doublequote
  column4 enclosed by '"',
  column5 enclosed by '"'
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्रॉन और SQLPLUS

  2. Oracle पिछली बार डाली गई पहचान को पुनः प्राप्त करें

  3. डेटा को हटाए बिना ऑरैकल में डेटा प्रकार बदलना

  4. मैं jdbc url के साथ कनेक्शन स्ट्रिंग का उपयोग कैसे कर सकता हूं?

  5. SQL सर्वर को Oracle से कनेक्ट करना