public void saveNColumnRDBMS(String db_name, String mgr_ip, String id, String yyyyMMdd, String exe_query, String fields) {
		String table_name = "is_monitor_" + id + "_" + yyyyMMdd;
		boolean existTable = existTable(db_name, table_name);
		if(!existTable){
			String query = "CREATE TABLE " + table_name + "(" +
				"id VARCHAR2(32) PRIMARY KEY," +
				"mgr_time VARCHAR2(32)," +
				"mgr_ip VARCHAR2(32)," +
				"category VARCHAR2(4)," +
				"event_time VARCHAR2(32)," +
				"origin VARCHAR2(32)," +
				"direction VARCHAR2(1)," +
				"s_info VARCHAR2(64)," +
				"s_port VARCHAR2(8)," +
				"d_info VARCHAR2(64)," +
				"d_port VARCHAR2(8)," +
				"protocol VARCHAR2(8)," +
				"user_id VARCHAR2(32)," +
				"method CLOB," +
				"status VARCHAR2(8)," +
				"evt_size VARCHAR2(8)," +
				"risk VARCHAR2(1)," +
				"ext1 VARCHAR2(64)," +
				"ext2 VARCHAR2(64)," +
				"ext3 VARCHAR2(64)," +
				"ext4 VARCHAR2(64)," +
				"ext5 VARCHAR2(64)," +
				"product VARCHAR2(64)," +
				"note VARCHAR2(1024)," +
				"extend VARCHAR2(256)," +
				"LINK VARCHAR2(4)," +
				"Count VARCHAR2(4)," +
				"raw_event CLOB)";
			existTable = excuteUpdate(db_name, query);
			query = "CREATE INDEX " + table_name + "_TIME ON " + table_name + "(EVENT_TIME)";
			existTable = excuteUpdate(db_name, query);
		}
		LogDbClient client = DBConnectionManager.getInstance().getQueryClient(mgr_ip);
		
		try {
			int query_id = client.createQuery(exe_query);
			client.startQuery(query_id);
			LogQuery q = client.getQuery(query_id);
			int pagesize = 20000;
			int page = 1;
			int loop = 0;
			
			boolean flag = true;
			while (flag) {
				if (loop > 30) {
					loop = 0;
				}

				if (q.getStatus().equalsIgnoreCase("Ended") || q.getStatus().equalsIgnoreCase("Cancelled")) {
					long ended_data = q.getLoadedCount() - (pagesize * (page - 1));
					
					if (ended_data > pagesize) {
						Map<String, Object> rows = client.getResult(query_id, (pagesize * (page - 1)), pagesize);
						insert(table_name, db_name, rows, fields, id, yyyyMMdd);
						loop = 0;
						page++;
						continue;
					} else {
						Map<String, Object> rows = client.getResult(query_id, (pagesize * (page - 1)), (int) q.getLoadedCount());
						insert(table_name, db_name, rows, fields, id, yyyyMMdd);
						loop = 0;
					}
					break;
				} else {
					if (q.getLoadedCount() > (pagesize * page)) {
						Map<String, Object> rows = client.getResult(query_id, (pagesize * (page - 1)), pagesize);
						insert(table_name, db_name, rows, fields, id, yyyyMMdd);
						loop = 0;
						page++;
					}
				}
				loop++;
			}
			logger.debug(exe_query);
			client.stopQuery(query_id);
			client.removeQuery(query_id);
		} catch (MessageException e) {
			logger.error(e.getMessage() + " : error query => " + exe_query, e);
		} catch (IOException e) {
			logger.error(e.getMessage() + " : error query => " + exe_query, e);
		}
	}