FUNCION en HANA

Tengo la siguiente funcion

CREATE FUNCTION "SBONTESTER"."ufnNATIVO.GetEmails" (IN CarCode VARCHAR(30)) 
RETURNS Emails VARCHAR(5000) 
LANGUAGE SQLSCRIPT  
SQL SECURITY INVOKER AS
BEGIN
	DECLARE Emails VARCHAR(5000):='';
    DECLARE Email VARCHAR(100):='';

	DECLARE CURSOR mails FOR SELECT "E_MailL" FROM OCPR WHERE "CardCode" = :CarCode AND "U_JC1_Enviar" = 'Y';
	OPEN mails;
	FETCH mails INTO Email;

	WHILE NOT mails::NOTFOUND DO
      IF Email IS NOT NULL THEN 
	     Emails := Emails || CASE WHEN LENGTH(Emails) = 0 THEN '' ELSE '; ' END || LTRIM(RTRIM(Email));
	  END IF;
	  FETCH mails INTO Email;
    END WHILE;
		
	CLOSE mails;
	
END;

Lo invoco de la siguiente forma:

select "SBONTESTER"."ufnNATIVO.GetEmails" ('C0001') from dummy

Donde se supone me debe traer una cadena de buzones de correos, sin embargo no me trae nada. Esta misma función la tengo en SQL y me funciona perfectamente.

Espero que algún conocedor mas experto en HANA me pueda ayudar.

1 me gusta

jajajaja gracias a todos, ya quedo solucionado. Creo el no dormir después de tantas hrs se cierra el cerebro. Saludos

1 me gusta

Y cual fue la solución?

1 me gusta

Claro que si , comparto para al que le pueda servir…

CREATE FUNCTION “SBONTESTER”.“ufnNATIVO.GetEmails” (IN CarCode VARCHAR(30))
RETURNS Emails VARCHAR(5000)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN

DECLARE Email VARCHAR(100):=’’;

DECLARE CURSOR mails FOR SELECT "E_MailL" FROM OCPR WHERE "CardCode" = :CarCode AND "U_JC1_Enviar" = 'Y';
OPEN mails;
FETCH mails INTO Email;

Emails =’’;

WHILE NOT mails::NOTFOUND DO
  IF Email IS NOT NULL THEN 
     Emails := Emails || CASE WHEN LENGTH(Emails) = 0 THEN '' ELSE '; ' END || LTRIM(RTRIM(Email));
  END IF;
  FETCH mails INTO Email;
END WHILE;
	
CLOSE mails;
END;

Saludos a todos

2 Me gusta