Name indirection can substitute only a name value. The second SET command in the following example returns an error message because of the context. When evaluating the expression to the right of the equal sign, Caché interprets @var1 as an indirect reference to a variable name, not a numeric value.
SET var1 = "5" SET x = @var1*6
You can recast the example to execute correctly as follows:
SET var1 = "var2",var2 = 5 SET x = @var1*6