Before executing commands ISQL expands macros in statement text. The following macros and macro related commands are available:

$LOADEXPR - the current script startup command
$LINENO - the current line number
$YYYYMMDD - the current date in the same format
$HHMMSS - the current time in the same format
$IF <cond> <THEN_RESULT> [<ELSE_RESULT>]

If the condition evaluates to non-empty and is not the literal 0 the value of the $IF is the <THEN_RESULT> else the <ELSE_RESULT>.

$(+|-) <arg1> <arg2>

result is the addition or substitution of the arg1 and arg2

$LAST[<n>]

an array of the last resultset row

$ARGV[<n>]

an array of the command line arguments

$U[<name>]

prints the user associative array U value for the name <name>

$<ISQL_Variable>

returns the value of that variable

$LT <v1> <v2>

returns 1 if the <v1> is lower that <v2>, empty otherwise

$GT <v1> <v2>

returns 1 if the <v1> is greater than <v2>, empty otherwise

$GTE <v1> <v2>

returns 1 if the <v1> is greater or equal than <v2>, empty otherwise

$LTE <v1> <v2>

returns 1 if the <v1> is lower or equal than <v2>, empty otherwise

$EQU <v1> <v2>

returns 1 if the <v1> is equal to <v2>, empty otherwise

$NEQ <v1> <v2>

returns 1 if the <v1> is not equal to <v2>, empty otherwise

Example 7.3. Examples:

ECHO $IF $EQU 1 2 "True" "False";

prints "False" to the standard output

EXIT $IF $NEQ 1 2 NOT;

never exits

ECHO $IF $EQU $ARGV[1] 1 "One" $IF $EQU $ARGV[1] "Two" "Unknown;

prints the "one" on 1 as arg 1, "two" on 2 as arg 1 otherwise "Unknown"