declare v_setlist dbms_data_mining.setting_list; begin -- 1. Decision tree specific settings v_setlist(dbms_data_mining.algo_name) := dbms_data_mining.algo_decision_tree; v_setlist(dbms_data_mining.tree_impurity_metric) := dbms_data_mining.tree_impurity_entropy; v_setlist(dbms_data_mining.tree_term_max_depth) := '5'; -- 2. Drop the model if it exists begin dbms_data_mining.drop_model('ml_model_iris'); exception when others then -- Model does not exist error code if sqlcode = -40284 then null; else dbms_output.put_line('ERROR training the ML model'); dbms_output.put_line('Reason: Unable to delete previous ML model.'); dbms_output.put_line('Message: ' || sqlerrm); dbms_output.put_line('--------------------------------------------------'); end if; end; -- 3. Create the model begin dbms_data_mining.create_model2( model_name => 'ml_model_iris', mining_function => 'CLASSIFICATION', data_query => 'select * from v_iris_train', set_list => v_setlist, case_id_column_name => 'id', target_column_name => 'species' ); exception when others then dbms_output.put_line('ERROR training the ML model'); dbms_output.put_line('Reason: Unable to train the model.'); dbms_output.put_line('Message: ' || sqlerrm); dbms_output.put_line('--------------------------------------------------'); end; -- 4. Other potential exceptions exception when others then dbms_output.put_line('ERROR training the ML model'); dbms_output.put_line('Reason: Other.'); dbms_output.put_line('Message: ' || sqlerrm); dbms_output.put_line('--------------------------------------------------'); end; /