ฉันมีแพ็คเกจ SSIS ซึ่งรับข้อมูลจากตารางฐานข้อมูลและส่งออกเป็นไฟล์ csv ระหว่างทางจะมี Execute SQL Task เพื่อเรียกชื่อไฟล์ (ประเภท A และหมายเลขลำดับที่ใช้ในการสร้างชื่อไฟล์ เช่น CAR, 12 จะเป็น C0000012.csv ฉันต้องสามารถ การทำเช่นนี้ในลักษณะที่ไม่มีข้อผิดพลาดเกิดขึ้นในกรณีที่ไม่มีรถยนต์ในตารางเมื่อเรียกใช้แพ็คเกจ
ในการทำเช่นนี้ ฉันได้สร้างแพ็คเกจ sql ซึ่งจะตรวจสอบการนับ จากนั้นส่งคืน 'CAR' และหมายเลขลำดับหากมีข้อมูล หรือ 'NUL' และ 0 หากไม่มี ฉันมีตัวแปรสองตัวที่แมปเป็นพารามิเตอร์เอาต์พุต:
NAME | Direction| Type | Name | Size
User::DownloadFileType | Output | String | TYPE | 3
User::DownloadFileNum | Output | int32 | SEQN | 8
เมื่อฉันรันแพ็คเกจ ฉันยังคงได้รับข้อผิดพลาด:
ประเภทของค่าที่กำหนดให้กับตัวแปร "User::DownloadFileType" จะแตกต่างจากประเภทตัวแปรปัจจุบัน
ฉันได้ดูความช่วยเหลือทางออนไลน์และดูเหมือนว่าจะมีปัญหาในการพยายามโหลด VARCHAR(MAX) ลงในค่าสตริง SSIS สตริงฐานข้อมูลของฉันเป็นประเภท VARCHAR2 (PL SQL) แต่ฉันได้ตั้งค่าขนาดสูงสุดเป็น 3 ตลอดแพ็คเกจและยังไม่มีโชค
ฉันคิดว่าปัญหาอาจเกิดจากการที่มันเป็นประเภท VARCHAR2 แต่ฉันไม่แน่ใจว่าจะทำให้เข้ากันได้กับ SSIS ได้อย่างไร ความช่วยเหลือใด ๆ ที่คุณสามารถนำเสนอจะได้รับการชื่นชมอย่างมาก
ขอบคุณสตีฟ