function Full_client_name (title in varchar2 default null,
firstname in varchar2 default null,
middlename in varchar2 default null,
surname in varchar2) return varchar2 is
v_name varchar2(240) := '';
begin
if (Title is not null) then
v_name := nls_initcap(title) || ' ';
end if;
if (firstname is not null) then
v_name := v_name || nls_initcap(firstname) || ' ';
end if;
if (middlename is not null) then
v_name := v_name || nls_initcap(middlename) || ' ';
end if;
if (upper(surname) like 'MC%') then
v_name := v_name || 'Mc' || nls_initcap(substr(surname,3, length(surname)));
else
v_name := v_name || nls_initcap(surname);
end if;
return v_name;
end full_client_name;