SYMPTOM:
In Strategy version 9.4.1, when using an Enterprise Manager Warehouse and Statistics repository in an Oracle database, the data load process might fail with the following error message:
ORA-01400: cannot insert NULL into ("IS_SESSION"."EM_CLIENT_MACHINE...
Fact Migration: Transaction 4 of 14; Sequence 2 of 2.
Error executing SQL :Execute Query failed.
Error type: Odbc error. Odbc operation attempted: SQLExecDirect. [23000:1400: on SQLHANDLE] [Strategy][ODBC Oracle Wire Protocol driver][Oracle]ORA-01400: cannot insert NULL into ("MSTR_STAT"."IS_SESSION"."EM_CLIENT_MACHINE")INSERT INTO IS_SESSION (EM_RECORD_TS, EM_LOAD_TS, IS_SESSION_ID, IS_SERVER_ID, EM_APP_SRV_MACHINE, EM_WEB_SRV_MACHINE, EM_USER_ID, EM_CLIENT_MACHINE, IS_CONNECT_TS, IS_DISCONNECT_TS, IS_TMP_DISCON_TS, IS_CONNEC_DH_ID, IS_DISCON_DH_ID, IS_SESSION_TM_SEC, EM_CONNECT_SOURCE, EM_DISCONN_REASON, DAY_ID, HOUR_ID, MINUTE_ID) SELECT EM_RECORD_TS, EM_LOAD_TS, IS_SESSION_ID, IS_SERVER_ID, EM_APP_SRV_MACHINE, EM_WEB_SRV_MACHINE, EM_USER_ID, EM_CLIENT_MACHINE, IS_CONNECT_TS, IS_DISCONNECT_TS, IS_TMP_DISCON_TS, IS_CONNEC_DH_ID, IS_DISCON_DH_ID, (CAST(IS_TMP_DISCON_TS AS DATE) - CAST(IS_CONNECT_TS AS DATE)) * 86400, EM_CONNECT_SOURCE, EM_DISCONN_REASON, DAY_ID, HOUR_ID, MINUTE_ID FROM IS_SESSION_TMP1SELECT * FROM dbo.EM_SQL WHERE EM_TRANS_ID = 4 AND EM_SEQ_ID=2;
INSERT INTO IS_SESSION (EM_RECORD_TS, EM_LOAD_TS, IS_SESSION_ID, IS_SERVER_ID, EM_APP_SRV_MACHINE, EM_WEB_SRV_MACHINE, EM_USER_ID, EM_CLIENT_MACHINE, IS_CONNECT_TS, IS_DISCONNECT_TS, IS_TMP_DISCON_TS, IS_CONNEC_DH_ID, IS_DISCON_DH_ID, IS_SESSION_TM_SEC, EM_CONNECT_SOURCE, EM_DISCONN_REASON, DAY_ID, HOUR_ID, MINUTE_ID) SELECT EM_RECORD_TS, EM_LOAD_TS, IS_SESSION_ID, IS_SERVER_ID, EM_APP_SRV_MACHINE, EM_WEB_SRV_MACHINE, EM_USER_ID, EM_CLIENT_MACHINE, IS_CONNECT_TS, IS_DISCONNECT_TS, IS_TMP_DISCON_TS, IS_CONNEC_DH_ID, IS_DISCON_DH_ID, DATEDIFF(SS,IS_CONNECT_TS,IS_TMP_DISCON_TS), EM_CONNECT_SOURCE, EM_DISCONN_REASON, DAY_ID, HOUR_ID, MINUTE_ID FROM IS_SESSION_TMP1
INSERT INTO is_session
(em_record_ts, em_load_ts, is_session_id, is_server_id,
em_app_srv_machine, em_web_srv_machine, em_user_id,
em_client_machine, is_connect_ts, is_disconnect_ts,
is_tmp_discon_ts, is_connec_dh_id, is_discon_dh_id,
is_session_tm_sec, em_connect_source, em_disconn_reason, day_id,
hour_id, minute_id)
SELECT em_record_ts, em_load_ts, is_session_id, is_server_id,
em_app_srv_machine, em_web_srv_machine, em_user_id,
NVL (TRIM (em_client_machine), 'N/A') em_client_machine,
is_connect_ts, is_disconnect_ts, is_tmp_discon_ts, is_connec_dh_id,
is_discon_dh_id,
(CAST (is_tmp_discon_ts AS DATE) - CAST (is_connect_ts AS DATE))
* 86400,
em_connect_source, em_disconn_reason, day_id, hour_id, minute_id
FROM is_session_tmp1;