SSIS 根据查询库中的年月按月循环输出CSV文件并以该月份命名。
先看一下整体结构。
控制流:
数据流:
首先我们先做一个执行sql任务,配置如下:
结果集配置:
注意结果集中的变量是Object类型的,因为返回的是结果集类型。要是单个数据则该变量为String类型。
配置好执行sql任务组件后,再拖拉一个ForEach循环容器到控制流区,并与执行sql任务组件相连,继续配置ForEach循环容器。
ForEach循环容器配置好后,我们拖拉一个数据流任务到ForEach循环容器里面。
然后我们来到数据流面板,拖拉一个OLE DB 源,配置一下你的数据库连接。
sql示例:
SELECT yearmonthday_AC2, yearmonthday_ALL, DC_SO_header, dc_so_item, CLO, vtweg, SOBKZ, order_type, Material_code,
shipping_plant, shipping_plant_dc, Production_plant, vendor_code, PRODUCT_LINE, CLUSTER, SALES_ORG, MPG,
MRP_Controller, Stock_Policy, SubmitDate, Insert_Date, Dc_so_create_date, Dc_so_credit_release_date, PR_date,
PO_date, Plant_so_create_date, MO_Create_Date, MO_release_Date, Mo_act_start_date, Mo_act_finish_date,
Mo_gr_date, Mo_dn_creation_date, Mo_dn_gi_date, Dc_po_gr_date, Customer_crd_date, Dc_dn_creation_date,
Dc_dn_credit_release_date, Dc_SO_GI_date, Customer_GR_date, Customer_request_gi_date, FROM_plant_city,
To_dc_city, Customer_code, Customer_Name, Ship_Customer_City, CREADIT_BLOCK, AC2_date, DELIVERY_BLOCK,
dc_dn_header, bu, production_line, Sub_Stock_Policy, sales_value, sales_quantity, dc_delivery_quantity,
Dc_SO_GI_date_min, node_target, node_target_three, FLAG, IS_DONE, Dc_so_create_date_temp,
Dc_so_credit_release_date_temp, Customer_crd_date_temp, Dc_dn_creation_date_temp,
Dc_dn_credit_release_date_temp, Dc_SO_GI_date_temp, IS_AC2_DATA, holiday, IS_OTDS_DATA
FROM V_E2E_DETAIL_All
WHERE (yearmonthday_ALL / 100 = ?)
选择所有列:
行计数:
以上组件都配置好新建一个平面文件管理器:
配置如下:
常规配置:
平面文件管理器表达式配置:
配置好平面文件管理器之后我们拖拉一个平面文件目标到数据流面板中,并与行计数组件连接。
配置平面文件目标:
映射:要相互对应
OK,至此 SSIS 根据查询库中的年月按月循环输出CSV文件并动态以该月份命名的job已经配置完成,点击执行变可成功运行啦。