a bueno, cuando no encuentra los parentesis que abren o que cierran entonces es cuando marca ese error, entonces habria que modificar la funcion para esos casos :)
Provemos con esto :)
Código SQL:
Ver originalDECLARE @inicio INT
DECLARE @fin INT
SELECT @inicio=isnull(charindex('(','mi casa esta hasta por aca (puerta azulada y que mas quieres que diga) mas texto por aca',0),0)
SELECT @fin=isnull(charindex(')','mi casa esta hasta por aca puerta azulada y que mas quieres que diga mas texto por aca',0),0)
IF @inicio>=1 AND @fin>=1
BEGIN
SELECT SUBSTRING('mi casa esta hasta por aca (puerta azulada y que mas quieres que diga) mas texto por aca',@inicio+1,(@fin-@inicio)-1)
END
ELSE
print 'no tiene parentesis ya sea que abre o que cierra o no tiene ninguno'
Saludos!