Only functions and extended stored procedures can
Publicado por Maria Eugenia Paradas (6 intervenciones) el 14/01/2008 20:13:27
Buenos días, quisiera solucionar este error: Only functions and extended stored procedures can be executed from within a function. que me da al ejecutar mi función:
select dbo.CONCATENA_TELEFONOS_REUTILIZABLES('16027204' , '' , '2')
La función es la siguiente:
alter function [dbo].[CONCATENA_TELEFONOS_REUTILIZABLES] (@cedula varchar(10),@pais varchar(20),@cantidad_telefonos varchar(5))
RETURNS varchar(250) AS
BEGIN
declare @sentencia nvarchar(1000),
@Param nvarchar(250),
@xResul nvarchar(250)
set @xResul=''
set @sentencia = 'select @retvalue = @retvalue+''0''+ltrim(rtrim(isnull(cod_area,'''')))+''-''+ltrim(rtrim(isnull(numero,'''')))+'',''
from (select top ' + @cantidad_telefonos + ' cod_area,numero from latinlists' + @pais + '..telefonos t where t.cedula= ''' + @Cedula + ''' order by confiabilidad) AS TEMP'
set @Param = N'@retvalue varchar(500) output'
exec sp_executesql @sentencia,@Param,@retvalue=@xResul output
if len(@xResul)>1
begin
set @xResul=substring(@xResul,1,len(@xResul)-1)
end
return @xResul
END
Saludos,
Y gracias...
select dbo.CONCATENA_TELEFONOS_REUTILIZABLES('16027204' , '' , '2')
La función es la siguiente:
alter function [dbo].[CONCATENA_TELEFONOS_REUTILIZABLES] (@cedula varchar(10),@pais varchar(20),@cantidad_telefonos varchar(5))
RETURNS varchar(250) AS
BEGIN
declare @sentencia nvarchar(1000),
@Param nvarchar(250),
@xResul nvarchar(250)
set @xResul=''
set @sentencia = 'select @retvalue = @retvalue+''0''+ltrim(rtrim(isnull(cod_area,'''')))+''-''+ltrim(rtrim(isnull(numero,'''')))+'',''
from (select top ' + @cantidad_telefonos + ' cod_area,numero from latinlists' + @pais + '..telefonos t where t.cedula= ''' + @Cedula + ''' order by confiabilidad) AS TEMP'
set @Param = N'@retvalue varchar(500) output'
exec sp_executesql @sentencia,@Param,@retvalue=@xResul output
if len(@xResul)>1
begin
set @xResul=substring(@xResul,1,len(@xResul)-1)
end
return @xResul
END
Saludos,
Y gracias...
Valora esta pregunta


0