Skip to Main Content

APEX

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!

Kindly help ORA-00917: missing comma" ERR-1101 Unable to process function

808691Sep 20 2011 — edited Sep 20 2011
HI Experts,

Since yesterday every thing was fine, i do not know what happened in the evening, we are facing some issue with our production.

I'm getting the following error ,when i running the report

ORA-00917: missing comma
Error ERR-1101 Unable to process function body returning query.


Since long time we have even not touched the code , i'm wondering about this error...the same code was working fine just 2 days back.



Kindly help me with this...


Code
DECLARE
   date_from DATE:=:P46_TRANS_DATEFROM;
   date_to DATE:=:P46_TRANS_DATETO;
   --date_from DATE :=TO_DATE('22-Nov-2007','DD-Mon-yyyy');
   --date_to DATE :=TO_DATE('23-Nov-2007','DD-Mon-yyyy');
   date_counter DATE:=date_from;

   v_city varchar2(32):=:P46_CITY;
   str_month1 VARCHAR2(3):=SUBSTR(TO_CHAR(date_from,'DD-MON-YYYY'),4,3);
   str_year1 VARCHAR2(4):=SUBSTR(TO_CHAR(date_from,'DD-MON-YYYY'),8,4);
   str_month2 VARCHAR2(3):=SUBSTR(TO_CHAR(date_to,'DD-MON-YYYY'),4,3);
   str_year2 VARCHAR2(4):=SUBSTR(TO_CHAR(date_to,'DD-MON-YYYY'),8,4);
   day_from VARCHAR2(2):=SUBSTR(date_from,1,2);
   day_to VARCHAR2(2):=SUBSTR(date_to,1,2);
   CURSOR trans_alloc(m VARCHAR2,y NUMBER,email VARCHAR2) IS SELECT * FROM EFT_TRANS_ALLOCATION WHERE LOWER(MONTH)=LOWER(m) AND YEAR=y AND LOWER(email_id)=LOWER(email);
   CURSOR trans_schedules(m1 VARCHAR2,y1 NUMBER,m2 VARCHAR2,y2 NUMBER) IS SELECT * FROM OD_SHIFT_SCHEDULE WHERE (UPPER(MONTH)=m1 OR UPPER(MONTH)=m2) AND (YEAR=y1 OR YEAR=y2);
   CURSOR get_res_id(email VARCHAR2) IS SELECT resource_id,first_name,last_name FROM EFT_RESOURCES WHERE LOWER(email_id)=LOWER(email);
   rec OD_SHIFT_SCHEDULE%ROWTYPE;
   CURSOR get_shifts(id VARCHAR2) IS SELECT * FROM OD_SHIFTS WHERE shift_id=id;
   ta EFT_TRANS_ALLOCATION%ROWTYPE;
   sd OD_SHIFTS%ROWTYPE;
   sql_str VARCHAR2(4000);
   v_res_id NUMBER;
   v_fname VARCHAR2(50);
   v_lname VARCHAR2(50);
   v_shift_id VARCHAR2(32);
   s VARCHAR2(1000);
   d VARCHAR2(32);
   final_sql VARCHAR2(4000);
   v_consent VARCHAR2(3);
   s2 VARCHAR2(1000);
   dn DATE;
BEGIN
   DELETE FROM EFT_SHIFT_SCHEDULES_RPT;

   OPEN trans_schedules(UPPER(str_month1),TO_NUMBER(str_year1),UPPER(str_month2),TO_NUMBER(str_year2));

   LOOP
      FETCH trans_schedules INTO rec;

	  EXIT WHEN trans_schedules%NOTFOUND;
	  OPEN get_res_id(rec.name);
	  FETCH get_res_id INTO v_res_id,v_fname,v_lname;
	     OPEN trans_alloc(TO_CHAR(date_counter,'MON'),TO_NUMBER(TO_CHAR(date_counter,'YYYY')),rec.name);
		 FETCH trans_alloc INTO ta;
		 
		 IF trans_alloc%FOUND THEN
		 dbms_output.put_line (date_counter||'----'||date_to||'Res_id:----'||v_res_id||'-'||ta.slno);
		 dbms_output.put_line ('Found Alloc');
		 WHILE date_counter<=date_to
		 LOOP
			 --d:=d||'-'||str_month||'-'||str_year;
			 
			 d:=SUBSTR(TO_CHAR(date_counter,'DD-MON-YYYY'),1,2);	
			 s:='INSERT INTO temp_2 SELECT "'||d||'" from OD_SHIFT_SCHEDULE where slno='||rec.slno;
			 --dbms_output.put_line (d||'-'||s);
			 DELETE FROM temp_2;
			 EXECUTE IMMEDIATE s;
			 SELECT substr(trim(VAL),1,1) INTO v_shift_id FROM temp_2;
			 
			 s2:='INSERT INTO temp_3 SELECT "'||d||'" from EFT_TRANS_ALLOCATION where slno='||ta.slno;
			 DELETE FROM temp_3;
			 EXECUTE IMMEDIATE s2;
			 SELECT VAL INTO v_consent FROM temp_3;
			 
			 --dbms_output.put_line (v_shift_id||'-'||v_consent);
 			 --dbms_output.put_line (date_counter||'-'||date_to);
			 IF v_consent='Y' THEN
			 --dbms_output.put_line ('Im inside consent'||v_consent);
			 IF v_shift_id IS NOT NULL THEN
			 --dbms_output.put_line ('Im inside shift not null'||v_shift_id);
			    OPEN get_shifts(v_shift_id);
			    FETCH get_shifts INTO sd;
				IF sd.night_shift_indicator='Y' THEN
				   dn:=date_counter+1;
	               sql_str:='INSERT INTO eft_shift_schedules_rpt VALUES ('||v_res_id||','''||v_fname||''','''||v_lname||''','''||rec.name||''','''||sd.shift_name||''','''||date_counter||''','''||sd.start_from||''','''||sd.start_to||''','''||''','''||sd.active_yn||''','''||dn||''')';
				ELSE
				   sql_str:='INSERT INTO eft_shift_schedules_rpt VALUES ('||v_res_id||','''||v_fname||''','''||v_lname||''','''||rec.name||''','''||sd.shift_name||''','''||date_counter||''','''||sd.start_from||''','''||sd.start_to||''','''||''','''||sd.active_yn||''','''||date_counter||''')';
				END IF;
			    EXECUTE IMMEDIATE sql_str;
			    CLOSE get_shifts;
				--dbms_output.put_line (sql_str);
			 END IF;

			 END IF;
			 COMMIT;
			 date_counter:=date_counter+1;	
	     END LOOP;
		 END IF;
      CLOSE trans_alloc;
	  CLOSE get_res_id;
	  --dbms_output.put_line (rec.name);
	  date_counter:=date_from;
   END LOOP;
   COMMIT;
   CLOSE trans_schedules;

final_sql:='select a.first_name,a.last_name,a.email_id,a.shift_details,a.arrange_date,a.slot_from,a.slot_to,a.trans_arranged,a.active_yn,b.address1,b.address2,b.city,b.state,b.pin,b.worknumber,b.homenumber,b.mobilenumber,a.to_date from eft_shift_schedules_rpt a,eft_locations b where a.resource_id=b.resource_id and b.city =:P46_CITY';
--dbms_output.put_line (final_sql);
RETURN final_sql;
END; 
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 18 2011
Added on Sep 20 2011
2 comments
267 views