SSIS ดำเนินการตัวแปรเอาต์พุตงาน SQL

ฉันมีแพ็คเกจ 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 ได้อย่างไร ความช่วยเหลือใด ๆ ที่คุณสามารถนำเสนอจะได้รับการชื่นชมอย่างมาก

ขอบคุณสตีฟ


person Stephen Leake    schedule 05.07.2013    source แหล่งที่มา


คำตอบ (1)


ส่งคืน 'CAR' และหมายเลขลำดับหากมีข้อมูลหรือ 'NUL' และ 0 หากไม่มี

ตัวแปรที่พิมพ์สตริงไม่สามารถกำหนดค่า NULL ใน SSIS ได้ กำหนดค่าสตริงว่างแทน

ส่งค่าสตริงส่งคืนประเภท varchar2 ในคำสั่ง select ของคุณไปที่ varchar(3)

เช่น. เลือกหล่อ ('CAR' เป็น varchar (3)) จาก dual

person S.M    schedule 05.07.2013
comment
ฉันคิดว่ามันพิมพ์ผิดในโพสต์ของคุณ ข้อผิดพลาดที่คุณกล่าวถึงนั้นเกิดจากเหตุผลที่กล่าวไว้ - person S.M; 05.07.2013
comment
ส่งค่าสตริงส่งคืนประเภท varchar2 ในคำสั่ง select ของคุณไปที่ varchar(3) เช่น เลือกหล่อ ('CAR' เป็น varchar (3)) จาก dual - person S.M; 06.07.2013