Sample Header Ad - 728x90

Equivalent of varchar(max) in ASE

1 vote
1 answer
1690 views
What is the equivalent of SQL Server's varchar(max) data type in ASE? By ASE I mean what used to be known as Sybase ASE, which is now owned by SAP. I'm attempting to execute a piece of dynamically constructed T-SQL that is longer than 8,000 chars. If I declare a variable with varchar(max), ASE chokes with:
Incorrect syntax near the keyword 'max'.
My next thought was to try the text datatype. But alas:
You specified an incorrect datatype for the variable containing the 'execute immediate' command string.
A minimal, complete, and verifiable example:
DECLARE @cmd varchar(max) --change this to varchar(4000) and it works
SET @cmd = 'SELECT 1;'
EXEC (@cmd);
GO
Changing the variable declaration to text or whatever will suit your purposes. I need to execute a dynamic command that is probably 50,000 characters long. Alternately, I could use a cursor, but I am unfamiliar with how cursors work on ASE. Note that in SQL Anywhere, you can define an equivalent to the varchar(max) datatype as declare @cmd long varchar;, however that won't work in ASE.
Asked by Hannah Vernon (70988 rep)
Oct 19, 2020, 09:16 PM
Last activity: Oct 28, 2020, 02:45 AM