ตัวแปรใน OLE DB Source (SSIS)


หน้าแรก SQL Server ตัวแปรใน OLE DB Source (SSIS)

ใน Integration Services อาจทำให้ SQL ของคุณใน Data Flow ของงานสร้างแบบไดนามิกโดยใช้ตัวแปร. ที่จะพวกเขาได้เข้าทีต้องการ.

คนจะคาดหวังว่าใน OLEDB Source ของคุณสามารถพิมพ์ข้อความต้องการเลือกขายจาก * ที่ DatumID =? แล้วเชื่อมโยงไปยังพารามิเตอร์ตัวแปร. วันนี้พบว่านี้ไม่ได้ผล. การแก้ปัญหาด้านล่าง.

ปัญหา

เราต้องการสร้างงบ SQL แบบไดนามิกในแหล่ง OLEDB ที่ดึงข้อมูลจากตารางในวันที่ปัจจุบัน. วันที่วันนี้เป็นฟิลด์จำนวนเต็ม, 20090225 (ไม่ datetime). เราทำเช่นนี้ในการเชื่อมต่อกับวันที่เปรียบเทียบ. หากคุณทำงานกับช่อง datetime ในนาที / ชั่วโมงเท่ากันเมื่อเปรียบเทียบกับเมื่อ integers มีคุณปัญหา no.

ขั้นตอนที่ 1

สร้างตัวแปรในระดับ package (ขอบเขต) ของ Int32 type. เรียกตัวแปรนี้ VandaagDatumID. คลิกที่ตัวแปรและกด F4 เพื่อให้หน้าจอคุณสมบัติ. ตั้ง EvaluateAsExpression ทรูด้านล่างและกรอกข้อมูลในการแสดงออกดังต่อไปนี้ปี (getdate ()) * 10000 + เดือน (getdate ()) * 100 + DAY (getdate ()). การแสดงออกนี้กำหนดวันค่าวันนี้ในฟิลด์จำนวนเต็ม.

expression_variable

ขั้นที่ 2

สร้างตัวแปรอื่นที่ Data Flow Task และขอบเขต. คุณไม่ได้แล้วจะไม่. ชื่อ SourceSQL ตัวแปร. คลิกอีกครั้งใน F4, EvaluateAsExpression ตั้งแสดงออกในงบ SQL ทรูและประเภทเพื่อดึงข้อมูล. สิ่งที่พิมพ์ในชุดที่ 1 บรรทัดเช่น: จำนวนสั่งซื้อเลือกสั่งซื้อจำนวนสั่งซื้อจริงจากที่ OrderDatumID = "+ (DT_WSTR, 12) @ [User:: VandaagDatumID].

ขั้นที่ 3

ไปที่ Source OLEDB ใน Data Flow Task และกรอกข้อมูลใน Access Mode: SQL Command จาก Variable. เลือกด้านล่างตัวแปร. ไม่สามารถเลือกตัวแปรเกินขอบเขตไม่ได้กำหนดอย่างถูก.

expression_oledb



ขึ้นไปด้านบน