Hi friends.
I need your help to improve my code that is presents below.
The aim of this code is replace a some tags in a string by a specifics
values.
Example:
I want replace a the substring(i called tag too) "<date>" by "" and
the substring <id> by a random value.
There is another way more efficent and elegant, for example with
regular expressions ?? Or do you have any idea to improve this code?
I do not like much the loop cycle, and the way to initializate the
array "l_tag_array" !!
DECLARE
TYPE lt_tags IS TABLE OF VARCHAR2(1024) INDEX BY VARCHAR2(128);
l_tag_array lt_tags;
l_idx VARCHAR2(128);
l_filename VARCHAR2(1024);
l_array_value VARCHAR2(1024);
BEGIN
l_filename:='<date>.<id>.dat';
l_tag_array('<date>'):='TO_CHAR(SYSDATE,''ddyyyyhh24miss'')';
l_tag_array('<id>'):='ROUND(dbms_random.value(1,1000),0)';
l_idx := l_tag_array.FIRST;
WHILE(l_idx IS NOT NULL) LOOP
EXECUTE IMMEDIATE 'SELECT ' || l_tag_array(l_idx) ||' FROM DUAL
' INTO l_array_value ;
l_filename := REPLACE(l_filename,l_idx,l_array_value);
l_idx := l_tag_array.NEXT(l_idx);
END LOOP;
dbms_output.put_line(l_filename);
END;
Thanks a lot,
Santana
--
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en