diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py index 86040640..c63ac962 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py @@ -25,15 +25,17 @@ class JjskDataLoadManager: db.execute(f"TRUNCATE TABLE {table_name_org};") # orgにload ※warningは1148エラーになるらしい - sql = f"LOAD DATA LOCAL INFILE :src_file_name INTO TABLE {table_name_org}" \ + sql = f"LOAD DATA LOCAL INFILE :src_file_name INTO TABLE {table_name_org} " \ " FIELDS TERMINATED BY '\\t' ENCLOSED BY '\"' IGNORE 1 LINES;" result = db.execute(sql, {"src_file_name": src_file_name}) logger.info(f'tsvデータをorgテーブルにLOAD : 件数({result.rowcount})') # org→srcにinsert select db.begin() - result = db.execute(upsert_sql) - logger.info(f'orgテーブルをsrcテーブルにUPSERT : 件数({result.rowcount})') + db.execute(upsert_sql) + # TODO: insert+select 実質10件なのに、resultのrowcountは20件になってしまう ※sqlalchemyの仕様 + # https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.rowcount + logger.info('orgテーブルをsrcテーブルにUPSERT') db.commit() except Exception as e: diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py index ec243433..726e927c 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py @@ -815,7 +815,7 @@ class VjskRecvFileMapper: ,t.PKG_CD ,t.PKG_NAME ,t.CNV_NUM - ,t.JSK_START_DT + ,nullif(t.JSK_START_DT, 0) ,t.PRD_SALE_KBN ,t.JSK_PROC_KBN ,t.START_DATE @@ -846,7 +846,7 @@ class VjskRecvFileMapper: ,PKG_CD=t.PKG_CD ,PKG_NAME=t.PKG_NAME ,CNV_NUM=t.CNV_NUM - ,JSK_START_DT=t.JSK_START_DT + ,JSK_START_DT=nullif(t.JSK_START_DT, 0) ,PRD_SALE_KBN=t.PRD_SALE_KBN ,JSK_PROC_KBN=t.JSK_PROC_KBN ,START_DATE=t.START_DATE