Oracle method dispatch on NULL SELF argument is disallowed
<p>I have a function under a package. I am passing some xml data to that function. But I'm getting this error. Could anybody explain it? I am explaining what I want to do in my code. I want to input all fields except the tsih_rate field. It will be calculated and filled in an automated way.  </p>

<pre><code>FUNCTION save_settings_insurance_health(employeeData NVARCHAR2) RETURN CLOB IS

ret CLOB;
xmlData XMLType;
v_code NUMBER;
v_errm VARCHAR2(500);
input_rate number(7,2);

BEGIN

xmlData:=XMLType(employeeData);

INSERT INTO TBL_SETTINGS_INSURANCE_HEALTH SELECT temp1.* FROM XMLTABLE('/employees/employee/insurance/health'
                                  PASSING xmlData
                                  COLUMNS tsih_class NVARCHAR2(10) PATH 'tsih_class',
                                          tsih_rate NUMBER(7,2) PATH 'tsih_rate' default null,
                                          tsih_total NUMBER(7,2) PATH 'tsih_total',
                                          tsih_eff_date_from DATE PATH 'tsih_eff_date_from',
                                          tsih_eff_date_to DATE PATH 'tsih_eff_date_to',
                                          tsih_created_on DATE PATH 'tsih_created_on',
                                          tsih_created_by NVARCHAR2(10) PATH 'tsih_created_by')temp1;
ret:=to_char(sql%rowcount);
input_rate:=to_number(xmlData.extract('/employees/insurance/health/tsih_total/text()').getstringval())/12;
INSERT INTO TBL_SETTINGS_INSURANCE_HEALTH (tsih_rate) VALUES (input_rate);
COMMIT;

RETURN '&lt;result&gt;&lt;status affectedRow='||ret||'&gt;success&lt;/status&gt;&lt;/result&gt;';
DBMS_OUTPUT.PUT_LINE(ret);
EXCEPTION
WHEN OTHERS THEN
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1 , 500);
DBMS_OUTPUT.PUT_LINE('Error code ' || v_code || ': ' || v_errm);
RETURN '&lt;result&gt;&lt;status&gt;Error'||v_errm||'&lt;/status&gt;&lt;/result&gt;';  

END save_settings_insurance_health;  
</code></pre>

<p>My input pl/sql is as following:  </p>

<pre><code>declare
   result clob;
begin
   -- Call the function
   result := PMIS.SAVE_SETTINGS_INSURANCE_HEALTH('&lt;employees&gt;
                      &lt;employee&gt;
                        &lt;insurance&gt;
                          &lt;health&gt;
                            &lt;tsih_class&gt;teacher&lt;/tsih_class&gt;
                            &lt;tsih_total&gt;1200&lt;/tsih_total&gt;
                            &lt;tsih_eff_date_from&gt;2016-1-16&lt;/tsih_eff_date_from&gt;
                            &lt;tsih_eff_date_to&gt;&lt;/tsih_eff_date_to&gt;
                            &lt;tsih_created_on&gt;2016-1-16&lt;/tsih_created_on&gt;
                            &lt;tsih_created_by&gt;Wahid&lt;/tsih_created_by&gt;
                          &lt;/health&gt;
                        &lt;/insurance&gt;
                      &lt;/employee&gt;
                  &lt;/employees&gt;');

  DBMS_OUTPUT.PUT_LINE(result);
end;  
</code></pre>