The following code shows a limitation in DAL (all releases through 1.4) when using the SQL IN verb in a DAL procedure. As DAL is currently implemented, you can't pass a parameter to a DAL procedure and use it in the IN clause:
procedure testit(inclause)
argument varchar inclause;
{
print inclause;
op;
select * from emp where empno in (inclause);
printall;
}
and the following calling sequence:
testit('3476,1556')
this should resolve itself to:
select * from emp where empno in (3476, 1556);
which is a legal SQL statement (and works). Trying to do this from a procedure, however, returns the error:
ORA-01722: invalid number.
under A/UX (oracle 7.0), and
*Error: incompatible operands for operator (-401)
"network", line 1 : DSNT408I SQLCODE = -401, ERROR: THE OPERANDS OF AN
ARITHMETIC OR COMPARISON OPERATION ARE NOT COMPARABLE
DSNT415I SQLERRP = DSNXODTI SQL PROCEDURE DETECTING ERROR
under DB2.
This limitation will be removed in a future version of DAL.

*The following information is for Apple Internal & Support Providers Only*