2012-08-13 2 views
0

내 checkboxlist에서 선택한 값을 가져 오려고하지만 sql에서 오류가 계속 발생합니다.닫지 않은 견적

오류

Msg 105, Level 15, State 1, Line 22 
Unclosed quotation mark after the character string ')'. 
Msg 102, Level 15, State 1, Line 22 
Incorrect syntax near ')'. 

SP

@DEPTCODE INT, 
@COA VARCHAR(50), 
@MAP VARCHAR(10) 
AS 
BEGIN 
SET NOCOUNT ON; 
DECLARE @SQL VARCHAR(MAX); 

BEGIN 
SET @SQL = N'SELECT 
       A.GL_EXCEPT_ID AS ''GL ID'' 
      , A.COA_SYSTEM AS ''Account Type'' 
      , A.ENTN AS ''Entity'' 
      , A.MED_CTR AS ''Medical Center'' 
      , (''['' + A.LOCN + ''] '' + B.LOCN_DESC) AS ''Location Code'' 
      , (''['' + A.CTRN + ''] '' + C.CTRN_DESC) AS ''Cost Center'' 
      , (''['' + RTRIM(A.FUND) + ''] '' + A.FUND_DESC) AS ''Fund'' 
      , A.ROLLUP_TYPE_ID AS ''Rollup ID'' 
      , A.ROLLUP_TYPE_DESC AS ''Rollup Type'' 
      , A.MAPPING AS ''Mapping'' 
FROM V_ROLLUP_GL_DESC_REV1 A 
    LEFT JOIN T_ROLLUP_GL_LOCN B 
     ON A.LOCN = B.LOCN 
      AND A.MED_CTR_ID = B.MED_CTR_ID 
      AND A.COA_SYSTEM = B.COA_SYSTEM 
    LEFT JOIN T_ROLLUP_GL_CTRN C 
     ON A.CTRN = C.CTRN 
      AND A.COA_SYSTEM = C.COA_SYSTEM 
WHERE (A.DEPT_ID = '+CONVERT(VARCHAR,@DEPTCODE)+') 
     AND A.COA_SYSTEM IN ('[email protected]+') 
     AND A.MAPPING IN ('[email protected]+''')' 
PRINT(@SQL) 
EXEC(@SQL) 
END 
END 

쿼리

USE [Rollup2] 
GO 

DECLARE @return_value int 

EXEC @return_value = [dbo].[USP_GET_GL_BY_DEPT] 
    @DEPTCODE = 1000, 
    @COA = N'''COA'',''COA_SYSTEM''', 
    @MAP = N'''DEFAULT'',''EXCEPTION''' 

SELECT 'Return Value' = @return_value 

답변

2

문제의 일부는 다음과 같습니다

@MAP VARCHAR(10) 
@MAP = N'''DEFAULT'',''EXCEPTION''' 

가 당신의 길이를 증가 :하지만 값이 더 이상 전달된다

@MAP VARCHAR(50) 

두 번째 문제는 너무 많은 따옴표가있다,이 라인 :

AND A.MAPPING IN ('[email protected]+''')' 

변경 :

AND A.MAPPING IN ('[email protected]+')' 
+0

감사합니다. 에스. 문제가 VARCHAR 길이라는 것을 알았습니다. 원래는 작은 따옴표가 있었고 오류로 인해 변경되었습니다. – user1512593