Função PL/SQL com erro
Olá,
ao chamar a função, estou a receber o erro:
"ORA-01422: extracção exacta devolve mais que o número pedido de linhas"
create or replace FUNCTION "CALC_ADDT_SIM_DISC" (ACCT_INPUT VARCHAR2)
RETURN VARCHAR2 IS
SIM_MSISDN VARCHAR2(20);
BEGIN
SELECT CASE
WHEN ADDT_DISC_1 = 1 THEN mu.MSISDN
WHEN ADDT_DISC_1 > 1 THEN (SELECT DISTINCT t02.MSISDN
FROM CDM.DMKV_TRANSP_VAR_RESULT_02 t02
WHERE SERV_ACCT_OLDER_MSISDN_FLG = 'Y' AND
PRICING_PLAN_TYPE IN ('valor1', 'valor2')
AND t02.DW_SERV_ST_ID='100000003' AND t02.CUST_ACCT_EXT_KEY = ACCT_INPUT
)
END MSISDN_ADDT_DISC
INTO SIM_MSISDN
FROM(
SELECT DISTINCT CUST_ACCT_EXT_KEY, COUNT(CUST_ACCT_EXT_KEY) AS ADDT_DISC_1
FROM MOBILE_UPSELL
WHERE FLAG_ADDITIONAL_SIM_DISCOUNT = '0'
GROUP BY CUST_ACCT_EXT_KEY
)t,
MOBILE_UPSELL mu
WHERE t.CUST_ACCT_EXT_KEY = mu.CUST_ACCT_EXT_KEY AND t.CUST_ACCT_EXT_KEY = ACCT_INPUT;
RETURN SIM_MSISDN;
END;
O que estou a fazer de errado?
ObrigadoDiscussão (1)
Carregando comentários...