2011-11-16 5 views
4
select * from dbo.split(RTRIM(@importRow), '¬') 

donne l'erreur:Msg 102, niveau 15, état 1, procédure <nom_procédure>, ligne 40 syntaxe incorrecte près '('

Msg 102, Level 15, State 1, Procedure proc_name, Line 40
Incorrect syntax near '('.

Quelle est la syntaxe correcte pour cette ligne Cela a été un alors que je l'ai fait SQL correctement et ne peut pas pour la vie de me faire cette partie du script à exécuter!

Utilisation de SQL Server 2005

Je présente mes excuses pour le titre. pas tout à fait sûr de ce que mettre les autres que cela ou "Syntaxe Erreur"!

Edit: Le code pour le SPLIT:

CREATE FUNCTION [dbo].[Split] 
(
     @String VARCHAR(4000), 
     @Delimiter VARCHAR(5) 
) 
RETURNS @SplittedValues TABLE 
(
    OccurenceId SMALLINT IDENTITY(1,1), 
    SplitValue VARCHAR(4000) 
) 
AS 
BEGIN 
DECLARE @SplitLength INT 

WHILE LEN(@String) > 0 
BEGIN 
     SELECT @SplitLength = (CASE CHARINDEX(@Delimiter,@String) WHEN 0 THEN 
LEN(@String) ELSE CHARINDEX(@Delimiter,@String) -1 END) 

     INSERT INTO @SplittedValues 
     SELECT SUBSTRING(@String,1,@SplitLength) 

     SELECT @String = (CASE (LEN(@String) - @SplitLength) WHEN 0 THEN '' 
ELSE RIGHT(@String, LEN(@String) - @SplitLength - 1) END) 
END 
RETURN 
END 
GO 

Et le code pour commencer la procédure

CREATE PROCEDURE dbo.[procedure] 
-- Add the parameters for the stored procedure here 
@RETURN_VALUE int, 
@importRow VarChar(8000) 
...... 
+0

Si vous co mment cette ligne? Les numéros de ligne ne correspondent pas toujours à la ligne réelle. – gbn

+0

Essayez-vous de faire '' select dbo.split (RTRIM (@importRow), '¬') ''? –

+0

@gbn: C'est drôle de mentionner que c'est la ligne à laquelle je parviens quand je double-clique sur l'erreur. Quelle est la ligne 52 (ish) La ligne réelle est une ligne vide – JustAnotherDeveloper

Répondre

3

Déplacez le RTRIM dans l'UDF lui-même (basé sur les commentaires)

Cette est une bonne pratique de toute façon, donc chaque utilisation du split UDF n'a pas besoin de RTRIM

Questions connexes