Re: Execute Immediate Not Working With WHERE CURRENT OF
Date: Wed, 21 Dec 2005 10:54:49 -0800
Message-ID: <1135191273.871754_at_jetspin.drizzle.com>
rhythmram_at_gmail.com wrote:
> Hi Gurus,
> Question regarding execute immediate. Following code is not working
> CREATE OR REPLACE FUNCTION Udf_Test (
> strTech IN VARCHAR2
> )
> RETURN PLS_INTEGER
> IS
> -- VARIABLES TO STORE INPUT PARAMETERS
> in_DID VARCHAR2 (18 BYTE);
> -- LOCAL VARIABLES
> intRowCount PLS_INTEGER;
> intErrorCount PLS_INTEGER;
> strUNID VARCHAR2 (24);
> strTableName VARCHAR (20);
>
> CURSOR c1 IS
> SELECT SUBSEC
> FROM TESTTABLE
> FOR UPDATE OF SUBSEC;
>
> BEGIN
> -- ASSIGNING INPUT PARAMETES TO THE LOCAL VARIABLES
> in_DID := UPPER (strTech);
> strTableName := 'TESTTABLE';
>
>
> -- LOCAL VARIABLE INITIALIZATION
> intRowCount := 0;
> intErrorCount := 0;
>
> FOR c1_rec IN c1 LOOP
> EXECUTE IMMEDIATE ' UPDATE TESTTABLE SET SUBSEC = ' || strTech || '
> WHERE CURRENT OF c1';
> END LOOP;
>
> RETURN intErrorCount;
> EXCEPTION
> WHEN OTHERS
> THEN
> ROLLBACK;
> intErrorCount := intErrorCount + 1;
>
> DBMS_OUTPUT.PUT_LINE (DBMS_UTILITY.FORMAT_ERROR_STACK);
> DBMS_OUTPUT.PUT_LINE (DBMS_UTILITY.FORMAT_CALL_STACK);
>
> RETURN intErrorCount;
> END;
>
> getting error at "EXECUTE IMMEDIATE ' UPDATE TESTTABLE SET SUBSEC = '
> || strTech || ' WHERE CURRENT OF c1';"
>
> ORA-03001: unimplemented feature
>
> any idea gurus
This example is a completely inappropriate use of Native Dynamic SQL. Why are you using it?
-- Daniel A. Morgan http://www.psoug.org damorgan_at_x.washington.edu (replace x with u to respond)Received on Wed Dec 21 2005 - 19:54:49 CET