Skip to main content

Character Limit for a Variable- Exec(@Variable) issues and solutions

Hi All,

When you are using Varchar (MAX) in declaring a Variable, Always remember, that VARCHAR(MAX) can hold only 8000 characters.

When we try to print Variables, PRINT Command display only 4000 character max.

When we try to execute, Variable (MAX) which is more than 8000 Character, we may not get exact Error to solve.

The problems seems to be with SET Statement which accepts only 4000 Characters.

In Order to Execute a Variable which is having VARCHAR (MAX) and the length of the strings are more than 8000 Character, Then best way to work is Splitting the Queries with Multiple Variable.

Example, If you have Dynamic Query which is 10000 characters, and is used as a string in a variable, Then,
we need to Split the Queries.

Find a Logical Break Point and Then concatenate remaining variables.

DECLARE @Query VARCHAR(MAX)
      DECLARE @Query1 VARCHAR(MAX)
      DECLARE @Query2 VARCHAR(MAX)
      DECLARE @Query3 VARCHAR(MAX)

      SET @Query1 = 'Select ……….[4000 Characters] '
SET @Query2= ' [Remaining next 4000 Characters]
SET @Query3= ' [Remaining next 4000 Characters till END of the Query]

     
      SET @Query= @Query1+@Query2+@Query3+@Query4

      EXEC (@Query)

This will work fine.

When you are working with Nvarchar, Then Instead of EXEC (@Query),
use, Execute Sp_ExecuteSQL @Query; When Using SP_EXECUTESQL function, use SET @Query1 = N'Select.......




Comments

Popular posts from this blog

BIG Data, Hadoop – Chapter 2 - Data Life Cycle

Data Life Cycle The data life cycle is pictorial defined as show below:     As we see, in our current system, we capture/ Extract our data, then we store it and later we process for reporting and analytics. But in case of big data, the problem lies in storing and then processing it faster. Hence Hadoop takes this portion, where it stores the data in effective format (Hadoop distributed File System) and also process using its engine (Map Reduce Engine). Since Map Reduce engine or Hadoop engine need data on HDFS format to process, We have favorable tools available in market to do this operation. As an example, Scoop is a tool which converts RDBMS to HDFS. Likewise we have SAP BOD to convert sap system data to HDFS.

How to move multiple files in ssis and also rename simultaneously

There are two ways to achieve this. 1) We can move the flat files and then rename it. 2) While moving files itself, automatic rename should be done. We will do the second type. The criteria is to rename the files while moving from source to destination. So for that, we need FILE SYSTEM TASK to be included. Secondly since we need to move many files, we will use FOR EACH LOOP CONTAINER. To fetch all the files, we can use FOR EACH LOOP task in SSIS. In collection tab, we can select FOREACH FILE enumerator option for fetching files and we can change enumerator configuration Folder option: Points to source where we need to fetch files. Files: will give us idea whether we need to fetch all the files (*.*) or if we give extension like *.txt, it is going to fetch only  .txt files . Once I give Source name in FOR EACH LOOP container, It is going to fetch all the files corresponding to that path. Retrieve file name: This option is used to let the variables mentioned in V...