ORA-00931: missing identifier error when using DBMS_UTILITY.COMMA_TO_TABLE

From: <slaydawg_at_my-deja.com>
Date: Wed, 01 Nov 2000 17:04:56 GMT
Message-ID: <8tpifi$5n6$1_at_nnrp1.deja.com>


[Quoted] [Quoted] I am going to need to read a file in CSV format to update my database. [Quoted] I decided to try and use PL/SQL and the DBMS_UTILITY.COMMA_TO_TABLE procedure to accomplish this.

Before I actually put in the code to read the file, I want to make sure [Quoted] I understand how th utility works.

When I run the simple procedure detailed below I am getting a "ORA-00931: missing identifier" error.

Does anyone have any clues to the solution of this?

I am posting this on the comp.database.oracle.server board also.

THE RESULTS OF THE SQL:

ORA-00931: missing identifier
ORA-06512: at "SYS.DBMS_UTILITY", line 79
ORA-06512: at "SYS.DBMS_UTILITY", line 108
ORA-06512: at "ERICDBA.PR_USER_MAINT", line 50
ORA-06512: at line 2

THE PROCEDURE THAT I AM RUNNING:
create or replace
procedure pr_user_maint(in_file_name in varchar2)

as

	rec_in        varchar2(4095) := 'A,B,C,1,2,3';
	num_items     BINARY_INTEGER := 0;
	tab_rec_in    DBMS_UTILITY.uncl_array;


    FUNCTION fn_List_Item_Count(
			   vList		IN     VARCHAR2,
			   vListItemDelimiter	IN     VARCHAR2
DEFAULT ','
			  ) RETURN NUMBER
    IS
	nItemCount	NUMBER;
    BEGIN
	IF    vList IS NULL
	   OR SUBSTR(vList,1,LENGTH(vListItemDelimiter)) =
vListItemDelimiter
	   OR INSTR(vList||vListItemDelimiter,
		    vListItemDelimiter||vListItemDelimiter) != 0 THEN
	  RETURN 0;
[Quoted] 	END IF;
	nItemCount := 0;
	WHILE INSTR(vList||vListItemDelimiter,vListItemDelimiter,1,
		    nItemCount + 1) != 0 LOOP
	  nItemCount := nItemCount + 1;
	END LOOP;
	RETURN nItemCount;

    END fn_List_Item_Count;
--
========================================================================
=
--==
[Quoted] --==              M A I N   P R O C E S S
--==
--
========================================================================
=
begin

--
/* in_LANId in varchar2, [Quoted] in_Domain in varchar2, in_FirstName in varchar2, in_LastName in varchar2, in_Email in varchar2, in_Phone in varchar2, */
--
-- Find out how many items are in the csv list num_items := fn_List_Item_Count(rec_in, ','); [Quoted] dbms_output.put_line('Num items is ' || num_items); [Quoted] -- Load up the PL/SQL table with the list DBMS_UTILITY.comma_to_table (rec_in,num_items,tab_rec_in); for i in 1..num_items loop dbms_output.put_line(tab_rec_in(i)); end loop;
--
end pr_user_maint; Sent via Deja.com http://www.deja.com/ Before you buy.
Received on Wed Nov 01 2000 - 18:04:56 CET

Original text of this message