web-dev-qa-db-fra.com

n'est pas un nom de fonction intégré reconnu

Créé une fonction

CREATE FUNCTION Split_On_Upper_Case(@Temp VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @KeepValues AS VARCHAR(50)
SET @KeepValues='%[^ ][A-Z]%'
WHILE PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)>0
SET @Temp=STUFF(@Temp,PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)+1,0,' ')
RETURN @Temp
END

Lorsque iam essaie d'exécuter cette opération SELECT Split_On_Upper_Case('SaiBharath'), il génère une erreur "Le nom" Split On UpperCase "n'est pas un nom de fonction intégrée reconnu.". Quelqu'un peut-il expliquer

22
sai bharath

Ajoutez [dbo] dans le préfixe puis exécutez-le comme suit:

SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')
29
Mansoor

Pour exécuter une fonction dans sql, le préfixe dbo devrait être utilisé.

SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')
11
Ravi Matani

Pour vous en assurer, commencez par définir la base de données sur laquelle vous avez créé votre fonction à l'aide de la clause use, puis préfixez l'appel de votre fonction avec dbo.

USE <DatabaseName>

SELECT dbo.Split_On_Upper_Case('camelCase')

Aussi, une bonne pratique est préfixant chaque fonction ou objet de base de données, avec son nom de schéma .

8
Radu Gheorghiu