sql server - मैं स्ट्रैट "NULL" को एक फ्लैट फ़ाइल में DATETIME या DATETIME2 में कैसे रूपांतरित कर सकता/सकती हूं?



sql-server ssis (1)

आपको स्तंभों को अपने फ्लैट फ़ाइल स्रोत में स्ट्रिंग्स (जैसे, [DT_STR]) के रूप में खींचने की आवश्यकता होगी और फिर उन्हें निम्नलिखित अभिव्यक्तियों के साथ व्युत्पन्न कॉलम रूपांतरण का उपयोग कर कनवर्ट करना होगा:

डीटी के लिए अभिव्यक्ति:

DT == "NULL" ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP) DT

डीटी 2 के लिए अभिव्यक्ति:

DT2 == "NULL" ? NULL(DT_DBTIMESTAMP2, 7) : (DT_DBTIMESTAMP2, 7) DT2

tl; dr : मैं एसएसडीटी / एसएसआईएस में किसी रिक्त फाइल में "नल" को कैसे बदलूं?

SSMS में यह कोड चलाया जाता है:

/* Run once
SET NOCOUNT ON
CREATE TABLE #source (DT DATETIME, DT2 DATETIME2)
CREATE TABLE #target (DT DATETIME, DT2 DATETIME2)
INSERT INTO #source
VALUES (GETDATE(),GETDATE()),(NULL,NULL),(GETDATE(),'9999-12-31 23:59:59')
*/
-- Cntl-Shift-F, results to CSV with headers
SELECT * FROM #source  

-- Cntl-D, results to grid
INSERT INTO #target
SELECT * FROM #source
SELECT * FROM #target

-- Prep for next run
TRUNCATE TABLE #target

हेडर्स के साथ सीएसवी के रूप में फ़ाइल बनाने के लिए परिणाम बनाने के लिए SSMS कॉन्फ़िगर करें: उपकरण -> विकल्प -> क्वेरी परिणाम -> SQL सर्वर -> पाठ के लिए परिणाम: अल्पविराम से सीमांकित पटलडाउन, चेक सेट परिणामों में कॉलम हेडर शामिल करें।

आपका आउटपुट समान होगा:

DT,DT2
2017-11-16 10:09:31.997,2017-11-16 10:09:31.9970000
NULL,NULL
2017-11-16 10:09:31.997,9999-12-31 23:59:59.0000000

एसएसडीटी में, एक फ्लैट फ़ाइल कनेक्शन को कॉन्फ़िगर करें, उन्नत "टैब", डीटी 2 के लिए DT, DT_DBTIMESTAMP2 के लिए कॉलम प्रकारों को DT_DBTIMESTAMP पर सेट करें।

(साइड प्रश्न: कोई भी विचार क्यों एसएसडीटी हमेशा इस गलत हो जाता है, और दोनों कॉलम को डीटीडीटीई में सेट करता है? स्पष्ट रूप से कॉलम में समय घटक है।

फ्लैट फ़ाइल स्रोत में, प्रतिधारण कॉन्फ़िगर = सत्य कॉन्फ़िगर करें (हालांकि मुझे लगता है कि यह अप्रासंगिक है क्योंकि मेरे पास सत्य नल नहीं है, यानी रिक्त स्तंभ जिसमें कोई डेटा नहीं है

मैं SSDT को #target में समान परिणाम बनाने के लिए कैसे प्राप्त करूं, जो मुझे SSMS में मिलता है? IOW, मुझे पाठ में "नाउल" को "उचित" नल को लक्ष्य में बदलने की आवश्यकता है I

मेरी प्राथमिकता:

  1. फ्लैट फ़ाइल कनेक्शन और / या फ्लैट फ़ाइल स्रोत के अंदर विन्यास ट्रिलरी,
  2. व्युत्पन्न स्तंभ (मुझे व्युत्पत्ति के साथ मदद की ज़रूरत है),
  3. स्क्रिप्ट घटक




flatfilesource