Tôi có một gói SSIS với luồng dữ liệu lấy nguồn dữ liệu ADO.NET (chỉ một bảng nhỏ), thực hiện truy vấn chọn * và xuất kết quả truy vấn sang tệp phẳng (tôi cũng đã cố gắng kéo toàn bộ bảng và không sử dụng một lựa chọn SQL).Làm cách nào để nhận Luồng dữ liệu SSIS để đặt '0,00' trong tệp phẳng?
Vấn đề là nguồn dữ liệu kéo cột là kiểu dữ liệu tiền, và nếu giá trị không bằng 0, nó đi vào tệp phẳng văn bản tốt (như '123.45'), nhưng khi giá trị bằng 0 , nó hiển thị trong tệp đích đích là '.00'. Tôi cần phải biết làm thế nào để có được số 0 dẫn đầu vào tập tin phẳng.
Tôi đã thử nhiều kiểu dữ liệu khác nhau cho đầu ra (trong Trình quản lý kết nối tệp phẳng), bao gồm tiền tệ và chuỗi, nhưng điều này dường như không có hiệu lực.
Tôi đã thử một tuyên bố trường hợp trong chọn của tôi, như thế này:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(kết quả vẫn' .00')
Tôi đã thử các biến thể trên đó như thế này:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(Tuy nhiên kết quả trong' .00')
và:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
(kết quả trong' ,0000000000000000000 ')
vấn đề chút ngớ ngẩn Đây là Killin' tôi. Ai có thể cho tôi biết làm thế nào để có được một số tiền không có giá trị cơ sở dữ liệu datatype vào một tập tin phẳng là '0.00'?
Tôi rất muốn biết nguyên nhân của vấn đề này - Tôi không thực sự thoải mái với bản hack cột có nguồn gốc. – PeterX