Прежде всего, условия, которые вы используете, никогда не будут возвращать никаких значений. Вы определяете переменную, например, V_BUSINESS_PROVIDER, и сразу после этого сравниваете ее со значением valueGet. Так как V_BUSINESS_PROVIDER равен нулю, результат условий всегда будет ложным
Во-вторых, набор условий
V_BUSINESS_PROVIDER = valueGet
AND Upper(V_BUSINESS_PROVIDER) = Upper(valueGet);
является избыточным. Если вам нужно, чтобы значения были в одном и том же регистре (например, «Слово» <> «СЛОВО»), вы должны использовать только строки, подобные этой
V_BUSINESS_PROVIDER = valueGet
, в противном случае, если вам не нужно сравнивать регистры ( например, «Слово» = «СЛОВО») вам нужно использовать только такие условия
AND Upper(V_BUSINESS_PROVIDER) = Upper(valueGet)
В-третьих. Как я вижу, цель состоит в том, чтобы получить значения столбцов в переменные, названные в их честь. В этом случае вы должны указать имена столбцов в операторе выбора. Например,
select business_provider
into V_BUSINESS_PROVIDER
FROM BUSINESS_PROVIDER_CONFIGURATION
....
В-четвертых, использование обработчиков исключений для неуправляемых целей - плохая идея. Я бы порекомендовал вам переписать эту часть следующим образом
create or replace FUNCTION BUSINESS_PROVIDER_GET(valueGet IN VARCHAR2)
RETURN VARCHAR2
IS
v_value business_provider_configuration.billing_account_id%TYPE ;
V_BUSINESS_PROVIDER business_provider_configuration.business_provider%TYPE;
V_TRADING_NAME business_provider_configuration.trading_name%TYPE;
V_CUSTOMER_ID business_provider_configuration.customer_id%TYPE;
V_PROVIDER BUSINESS_PROVIDER_CONFIGURATION%TYPE;
BEGIN
begin
select ... into V_BUSINESS_PROVIDER ...;
exception
when no_data_found then
V_BUSINESS_PROVIDER := null;
end;
if V_BUSINESS_PROVIDER is null then
begin
select ... into V_TRADING_NAME ...;
exception
when no_data_found then
V_TRADING_NAME := null;
end;
end if;
if V_TRADING_NAME is null then
begin
select ... into V_CUSTOMER_ID ...;
exception
when no_data_found then
raise(...); -- though I'm not sure if you have to raise it, the no_data_found will get raised anyway you can handle the native exception
end;
end if;
end BUSINESS_PROVIDER_GET;