Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 SQL Server Administration (2005)
 Problem with VARCHAR(MAX)

Author  Topic 

arehmanbtc
Starting Member

7 Posts

Posted - 2007-12-13 : 06:33:01


Hi Guys,

I am declaring a Varchar(MAX) variable .
What i know about this enhanced variable is it will allow more then 8000 chars.But in my case it is not..I am placing my Sp below Plz check...


"SP BEGINS HERE"


ALTER PROC [dbo].[ReqRec_AddHireApplicantApproverADMIN]
(
@intRequisitionID INT,
@strRequisitionCode VARCHAR(35)='',
@strORGLevel1 VARCHAR(3)='',
@strORGLevel2 VARCHAR(3)='',
@strORGLevel3 VARCHAR(3)='',
@strORGLevel4 VARCHAR(3)='',
@strORGLevel5 VARCHAR(3)='',
@strORGLevel6 VARCHAR(3)='',
@strORGLevel7 VARCHAR(3)='',
@strORGLevel8 VARCHAR(3)='',
-----------------------------------EMPLOYEE DETAILS--------------
@intAppID INT,
@strUserID VARCHAR(50)='',
@strDOJ VARCHAR(50)=''
--@intFlag VARCHAR(20)
)
-- EXEC ReqRec_AddHireApplicantApproverADMIN 22,'JKOLKATA000001','001','001','002','001','002','023','014','003','14823','sysadmin','2007/10/1'

AS
BEGIN

DECLARE @strSQLQuery AS VARCHAR(MAX)
DECLARE @strSQLQuery1 AS VARCHAR(MAX)
SET @strSQLQuery='
BEGIN TRAN
DECLARE @strempcode1 as varchar(500) ,
@intMax AS INT,
@strEmpCode AS Varchar(10),
@intResult AS INT

IF dbo.Req_GetApplicantCurrentStatus('+CAST(@intAppID AS VARCHAR(8))+','+CAST(@intRequisitionID AS VARCHAR(8))+')=23
INSERT INTO ReqRec_ApplicantStatusDetails
(
AD_AppID,
ASD_AD_ReqID,
ASD_SM_StatusID,
ASD_Auth_UD_UserID

)
VALUES('
+CAST(@intAppID AS VARCHAR(8))+','+
CAST(@intRequisitionID AS VARCHAR(8))+',
25,
'''+ @strUserID+'''
)

Select @strempcode1='''+dbo.ReqRec_GetEmployeeNumberADMIN()+'''

DELETE FROM REQREC_APPIDEMPCODEDETAILS WHERE AECD_AD_APPID='+CAST(@intAppID AS VARCHAR(8))+' AND AECD_RTD_ReqID='+CAST(@intRequisitionID AS VARCHAR(8))+'

INSERT INTO REQREC_APPIDEMPCODEDETAILS VALUES('+CAST(@intAppID AS VARCHAR(8))+','+CAST(@intRequisitionID AS VARCHAR(8))+','''+dbo.ReqRec_GetEmployeeNumberADMIN()+''')

INSERT INTO ReqRec_EmployeeDetails
(
ED_EMPCode,
ED_Salutation,
ED_FirstName,
ED_MiddleName,
ED_LastName,
ED_Sex,
ED_DOB,
ED_BirthPlace,
ED_MaritalStatus,
ED_PresentTelephone,
ED_PermanentTelephone,
ED_Mobile,
ED_Passport,
ED_Fax,
ED_Email,
ED_PresentAddress,
ED_PresentCity,
ED_PresentPin,
ED_PermanentAddress,
ED_PermanentCity,
ED_PermanentPin,
ED_FatherName,
ED_Status,
ED_HomePage,
ED_Remarks,
ED_SpouseName,
ED_WorkingAddress

)
VALUES
('''+dbo.ReqRec_GetEmployeeNumberADMIN()+''','+
dbo.ReqRec_AddApplicantToEmployeeMasterApprover(@intRequisitionID,@intAppID) +
','+ dbo.ReqRec_AddApplicantToEmployeeMasterApprover1(@intRequisitionID) +
+')
SELECT @intMax = ED_EMPID
FROM ReqRec_EmployeeDetails where ED_EMPCode ='''+dbo.ReqRec_GetEmployeeNumberADMIN()+'''
SELECT @strEmpCode=ED_EMPCode
FROM ReqRec_EmployeeDetails
WHERE ED_EMPID =@intMax
UPDATE REQREC_EMPLOYEEDETAILS SET ED_DOJ='''+ @strDOJ +''' WHERE ED_EMPCODE=@strEmpCode
INSERT INTO Setup_ORGEmployeeMaster
(
ORGEM_EmpID,
ORGEM_EmpCode ,
ORGEM_OrgLevel1ID,
ORGEM_OrgLevel2ID,
ORGEM_OrgLevel3ID,
ORGEM_OrgLevel4ID,
ORGEM_OrgLevel5ID,
ORGEM_OrgLevel6ID,
ORGEM_OrgLevel7ID,
ORGEM_OrgLevel8ID
)
VALUES (
@intMax,
@strEmpCode,'''+
@strORGLevel1+''','''+
@strORGLevel2+''','''+
@strORGLevel3+''','''+
@strORGLevel4+''','''+
@strORGLevel5+''','''+
@strORGLevel6+''','''+
@strORGLevel7+''','''+
@strORGLevel8+'''
)'

-- Exec ReqRec_GetNoticePeriod @strORGLevel1 , @strORGLevel2 ,@strORGLevel3, @strORGLevel4 , @strORGLevel5 , @strORGLevel6 ,@strORGLevel7 , @strORGLevel8




------------------------------------------------EXPERIENCE---------------------------------------------
DECLARE @CatID AS VARCHAR(8),
@ExpID AS VARCHAR(8),
@Years AS VARCHAR(8),
@Months AS VARCHAR(8)

DECLARE ExpCursor CURSOR FOR
SELECT ISNULL(AE_ECM_ExpCategoryID,0),
ISNULL(AE_EM_ExpID,0),
ISNULL(AE_Years,0),
ISNULL(AE_Months,0)
FROM ReqRec_ApplicantExperience
WHERE AE_AD_AppID=@intAppID

OPEN ExpCursor

FETCH NEXT FROM ExpCursor INTO @CatID, @ExpID, @Years, @Months

WHILE @@FETCH_STATUS = 0
BEGIN

SET @strSQLQuery = @strSQLQuery +' INSERT INTO ReqRec_EmployeeExperience(
EE_ED_EMPID,
EE_ECM_ExpCategoryID,
EE_EM_ExpID,
EE_Years,
EE_Months)
VALUES(@intMax,'+@CatID+','+ @ExpID+','''+ @Years+''','''+ @Months+''') '
FETCH NEXT FROM ExpCursor INTO @CatID, @ExpID, @Years, @Months
END
CLOSE ExpCursor
DEALLOCATE ExpCursor



------------------------------------------------SKILL---------------------------------------------
DECLARE @SkillID AS VARCHAR(8),
@LevelID AS VARCHAR(8)

DECLARE SkillCursor CURSOR FOR
SELECT ISNULL(AS_SM_SkillID,0),
ISNULL(AS_SkillLevel,0)

FROM ReqRec_ApplicantSkill
WHERE AS_AD_AppID=@intAppID

OPEN SkillCursor

FETCH NEXT FROM SkillCursor INTO @SkillID,@LevelID

WHILE @@FETCH_STATUS = 0
BEGIN

SET @strSQLQuery = @strSQLQuery +'INSERT INTO ReqRec_EmployeeSkill(ES_ED_EMPID,ES_SM_SkillID,ES_SkillLevel)
VALUES(@intMax,'+@SkillID+','+ @LevelID+') '
FETCH NEXT FROM SkillCursor INTO @SkillID,@LevelID
END
CLOSE SkillCursor
DEALLOCATE SkillCursor

SET @strSQLQuery=@strSQLQuery+ 'IF @@ERROR <> 0








































BEGIN
ROLLBACK
SET @intResult =0
END
ELSE
BEGIN
COMMIT
SET @intResult =1
END
SELECT @intResult '




--PRINT (@strSQLQuery)
--EXEC (@strSQLQuery)

print (len(@strSQLQuery))


END

--rollback




















































Thanks,
sohails

harsh_athalye
Master Smack Fu Yak Hacker

5581 Posts

Posted - 2007-12-13 : 07:02:28
What length you get as a result of your last print statement?

Harsh Athalye
India.
"The IMPOSSIBLE is often UNTRIED"
Go to Top of Page

arehmanbtc
Starting Member

7 Posts

Posted - 2007-12-15 : 06:09:04
something around 875 chars.

Thanks,
sohails
Go to Top of Page
   

- Advertisement -