Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Dynamic SQL in a function
i am trying to determine no of chars in a long field.
googled around, adapted some code, put it in a function and it works beautifully:
function MYLEN (idx varchar2) return number as
long_var LONG;
BEGIN
SELECT n.notes INTO long_var
FROM myTable n
WHERE n.rowid = idx;
return length(long_var);
end;
select myLen(rowid) from MyTable;
(idx varchar2, tbl varchar2, fld varchar2) return number as
long_var LONG;
str long;
v varchar2(50);
BEGIN
/* dynamic sql */
v := '''' || idx || '''';
str := 'SELECT n.' || fld || ' INTO long_var FROM ttadm.' || tbl || '
n WHERE n.rowid =' || v;
execute immediate str; --LINE 16
return length(long_var);
end;
when used in my query:
select myLen(rowid, 'MyTable','MyLongFld') from MyTable;
all i get is:
ERROR at line 1:
ORA-00933: SQL command not properly ended
ORA-06512: at "myLen", line 16
what am i doing wrong?
regards
Edwinah63 Received on Mon Sep 19 2005 - 01:06:00 CDT
![]() |
![]() |