Robert Silver
asked on
PLS-00307: too many declarations of 'TO_CHAR' match this call - WHY???? Whats the fix?
Can anyone tell me why the following works:
SELECT m.value||'\'||'ORA'||ltrim (to_char(p .spid,'000 00'))||'.t rc'
FROM v$session s, v$process p, v$instance i, v$parameter m
WHERE m.name = 'user_dump_dest' AND p.addr= s.paddr AND userenv('SESSIONID') = s.audsid
AND s.server='DEDICATED';
but the following gives me an annoying PLS-00307: too many declarations of 'TO_CHAR' match this call
error:
CREATE OR REPLACE PROCEDURE rssyncit1 IS
location varchar2(255);
BEGIN
dbms_utility.exec_ddl_stat ement('alt er database backup controlfile to trace');
SELECT iv.traceloc
INTO location
FROM (
SELECT m.value||'\'||'ORA'||ltrim (to_char(p .spid,'099 99'))||'.t rc' traceloc
FROM v$session s, v$process p, v$instance i, v$parameter m
WHERE m.name = 'user_dump_dest' AND p.addr= s.paddr AND userenv('SESSIONID') = s.audsid
AND s.server='DEDICATED'
) iv;
insert into mycontrol_files values(location);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END rssyncit1;
/
SELECT m.value||'\'||'ORA'||ltrim
FROM v$session s, v$process p, v$instance i, v$parameter m
WHERE m.name = 'user_dump_dest' AND p.addr= s.paddr AND userenv('SESSIONID') = s.audsid
AND s.server='DEDICATED';
but the following gives me an annoying PLS-00307: too many declarations of 'TO_CHAR' match this call
error:
CREATE OR REPLACE PROCEDURE rssyncit1 IS
location varchar2(255);
BEGIN
dbms_utility.exec_ddl_stat
SELECT iv.traceloc
INTO location
FROM (
SELECT m.value||'\'||'ORA'||ltrim
FROM v$session s, v$process p, v$instance i, v$parameter m
WHERE m.name = 'user_dump_dest' AND p.addr= s.paddr AND userenv('SESSIONID') = s.audsid
AND s.server='DEDICATED'
) iv;
insert into mycontrol_files values(location);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END rssyncit1;
/
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
CREATE OR REPLACE PROCEDURE rssyncit1 IS
location varchar2(255);
BEGIN
dbms_utility.exec_ddl_stat
insert into mycontrol_files
SELECT m.value||'\ORA'||ltrim(to_
FROM v$session s, v$process p, v$instance i, v$parameter m
WHERE m.name = 'user_dump_dest' AND p.addr= s.paddr AND userenv('SESSIONID') = s.audsid
AND s.server='DEDICATED'
;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END rssyncit1;
/