Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-00932: inconsistent datatypes: expected - got -

holdingMar 6 2012 — edited Mar 6 2012
Hi,

I have writen PL/SQL packages for data loging through pipe lined function for better peformance.The below packages has been compiled sucessfully but during the run time it shows an error
like "ORA-00932: inconsistent datatypes: expected - got -".
CREATE OR REPLACE PACKAGE pkg_mkt_hub_load
AS
	
	PROCEDURE sp_final_load_mkt_hub;
	
	  FUNCTION fnc_pipe_tot_lvl_idx_mon_hub
    (pi_input_cur IN SYS_REFCURSOR)
   RETURN tot_lvl_idx_mon_tt
   PIPELINED;

END pkg_mkt_hub_load;
/


CREATE OR REPLACE PACKAGE BODY pkg_mkt_hub_load
AS

  c_default_limit CONSTANT PLS_INTEGER:=5000;
  c_created_dt    CONSTANT DATE:=SYSDATE;
  c_created_user  CONSTANT VARCHAR2(20):='SYSTEM';
  c_updated_dt    CONSTANT DATE:=SYSDATE;
  c_updated_user  CONSTANT VARCHAR2(20):='SYSTEM';

  -- to get the debug desc for updating process log table 
  vg_debug_log_desc mkt_process_log.debug_log_desc%TYPE; 
  --to get process log key 
  vg_process_log_ky mkt_process_log.process_log_ky%TYPE; 
  
  
   -- reset the all variables.
  PROCEDURE sp_reset_global_variables; 
  
  PROCEDURE sp_final_lvl_idx_mon_hub;
  
  --PROCEDURE sp_final_lvl_idx_dly_hub;
  
  FUNCTION fnc_pipe_tot_lvl_idx_mon_hub
    (pi_input_cur IN SYS_REFCURSOR)
   RETURN tot_lvl_idx_mon_tt
   PIPELINED
  AS
   vl_lvl_idx_mon_cur_data tot_lvl_idx_mon_tt;
   
   BEGIN
     LOOP
	 FETCH pi_input_cur BULK COLLECT INTO vl_lvl_idx_mon_cur_data LIMIT c_default_limit;
	 EXIT WHEN vl_lvl_idx_mon_cur_data.COUNT = 0;
	 FOR i IN 1 .. vl_lvl_idx_mon_cur_data.COUNT
	 LOOP
	   PIPE ROW (tot_lvl_idx_mon_ot(vl_lvl_idx_mon_cur_data(i).SSIA_INDEX_ID,
	   vl_lvl_idx_mon_cur_data(i).start_date,vl_lvl_idx_mon_cur_data(i).currency,
	 vl_lvl_idx_mon_cur_data(i).level1,vl_lvl_idx_mon_cur_data(i).type,
	 vl_lvl_idx_mon_cur_data(i).RETURN_MONTH,vl_lvl_idx_mon_cur_data(i).RETURN_3MONTHS,
	 vl_lvl_idx_mon_cur_data(i).RETURN_6MONTHS,vl_lvl_idx_mon_cur_data(i).RETURN_YTD,
	 vl_lvl_idx_mon_cur_data(i).RETURN_1YEAR,vl_lvl_idx_mon_cur_data(i).RETURN_3YEARS,
	 vl_lvl_idx_mon_cur_data(i).RETURN_5YEARS,vl_lvl_idx_mon_cur_data(i).RETURN_10YEARS,
	 vl_lvl_idx_mon_cur_data(i).MARKET_CAP));
	 END LOOP;
	 END LOOP;
	 CLOSE pi_input_cur;
	 RETURN;
   END fnc_pipe_tot_lvl_idx_mon_hub;	

   PROCEDURE sp_final_lvl_idx_mon_hub
   AS
   BEGIN
   
   MERGE INTO mkt_total_lvl_indx_mon_hub idxhub   
   USING TABLE(pkg_mkt_hub_load.fnc_pipe_tot_lvl_idx_mon_hub(CURSOR(SELECT idxmap.ssia_index_code,idxstg.start_date,idxstg.currency,idxstg.level1,idxstg.type, 
       idxstg.return_month,idxstg.return_3months, idxstg.return_6months, idxstg.return_ytd, idxstg.return_1year, 
       idxstg.return_3years, idxstg.return_5years,idxstg.return_10years,idxstg.market_cap 
	FROM   mkt_total_lvl_indx_mon_stg idxstg, 
		   md_vendor_index_map idxmap 
	WHERE  idxmap.source = idxstg.source 
		   AND idxmap.base_currency = idxstg.currency 
		   AND idxmap.return_type = idxstg.TYPE 
		   AND idxmap.mkt_index_id = idxstg.vendor_code 
		   AND idxmap.monthly = 'Y' 
		   AND idxmap.file_type = 'T'))) idxmonstg
	ON (idxhub.ssia_index_id=idxmonstg.ssia_index_id)
	WHEN MATCHED THEN
	UPDATE set effective_date=idxmonstg.start_date,
			   CURRENCY=idxmonstg.currency,
			   INDEX_LEVEL=idxmonstg.LEVEL1,
			   TYPE=idxmonstg.type,
			   return_month=idxmonstg.return_month,
			   return_3months=idxmonstg.return_3months,
			   return_6months=idxmonstg.return_6months,
			   return_ytd=idxmonstg.return_ytd,
			   return_1year=idxmonstg.return_1year,
			   return_3years=idxmonstg.return_3years,
			   return_5years=idxmonstg.return_5years,
			   return_10years=idxmonstg.return_10years,
			   market_cap=idxmonstg.market_cap,
			   updated_dt=SYSDATE,
			   updated_user='MICHAEL'
	WHEN NOT MATCHED THEN
	 INSERT (  ssia_index_id,
	           effective_date,
			   currency,
			   INDEX_LEVEL,
			   TYPE,
			   return_month,
			   return_3months,
			   return_6months,
			   return_ytd,
			   return_1year,
			   return_3years,
			   return_5years,
			   return_10years,
			   market_cap,
			   created_dt,
			   created_user)
	VALUES(	   idxmonstg.ssia_index_id,
			   idxmonstg.start_date,
			   idxmonstg.currency,
			   idxmonstg.LEVEL1,
			   idxmonstg.type,
			   idxmonstg.return_month,
			   idxmonstg.return_3months,
			   idxmonstg.return_6months,
			   idxmonstg.return_ytd,
			   idxmonstg.return_1year,
			   idxmonstg.return_3years,
			   idxmonstg.return_5years,
			   idxmonstg.return_10years,
			   idxmonstg.market_cap,
               SYSDATE,
               'MICHAEL');	
   END sp_final_lvl_idx_mon_hub;
   
   PROCEDURE sp_final_load_mkt_hub
   as
   BEGIN
    sp_final_lvl_idx_mon_hub;
   END sp_final_load_mkt_hub;
	
   PROCEDURE Sp_reset_global_variables 
   AS 
   BEGIN 
   vg_debug_log_desc := NULL; 
   END sp_reset_global_variables; 	

END pkg_mkt_hub_load;
/
	
SHOW ERRORS  
Error:

ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got -
ORA-06512: at "GPAIHMKTDTA.PKG_MKT_HUB_LOAD", line 33
ORA-06512: at "GPAIHMKTDTA.PKG_MKT_HUB_LOAD", line 55
ORA-06512: at "GPAIHMKTDTA.PKG_MKT_HUB_LOAD", line 92
ORA-06512: at line 1


types scripts:
create or replace type tot_lvl_idx_mon_ot as object
(SSIA_INDEX_ID  VARCHAR2(60),
 start_date date,
 CURRENCY               VARCHAR2(10),
 LEVEL1                  NUMBER(31,11),
 TYPE                    VARCHAR2(31) ,
 RETURN_MONTH            NUMBER(31,11), 
RETURN_3MONTHS          NUMBER(31,11), 
RETURN_6MONTHS          NUMBER(31,11), 
RETURN_YTD              NUMBER(31,11), 
RETURN_1YEAR            NUMBER(31,11), 
RETURN_3YEARS           NUMBER(31,11), 
RETURN_5YEARS           NUMBER(31,11), 
RETURN_10YEARS          NUMBER(31,11), 
MARKET_CAP              NUMBER(31,11));

create or replace type tot_lvl_idx_mon_tt is table of tot_lvl_idx_mon_ot;
how to resolve this issue?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 3 2012
Added on Mar 6 2012
2 comments
2,569 views