C语言中调用SQL语句时使用两个INTO时出错
具体SQL语句如下:
EXEC SQL SELECT MAX(DEP_SEQ_ID) INTO :db_strMaxDepSeqId, MIN(DEP_SEQ_ID) INTO :db_strMinDepSeqId
FROM DEP_FUND_INFO
WHERE TRAN_DATE = :db_strDate
AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
AND TRAN_TIME >= :db_strSTime
AND TRAN_TIME <= :db_strETime
AND TRAN_CODE in ('12001','12002');
这时编译时提示:
SQL0060W The "C" precompiler is in progress.
91 SQL0104N An unexpected token "MAX(DEP_SEQ_ID) INTO
:db_strMaxDepSeqId ," was found following "SELECT
". Expected tokens may include: "<space>".
SQLSTATE=42601
SQL0095N No bind file was created because of previous
errors.
SQL0091W Precompilation or binding was ended with "2"
errors and "0" warnings.
make: The error code from the last command is 4.
但是我将两个INTO拆分成两个SQL语句就可以了,如下:
EXEC SQL SELECT MAX(DEP_SEQ_ID) INTO :db_strMaxDepSeqId
FROM DEP_FUND_INFO
WHERE TRAN_DATE = :db_strDate
AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
AND TRAN_TIME >= :db_strSTime
AND TRAN_TIME <= :db_strETime
AND TRAN_CODE in ('12001','12002');
EXEC SQL SELECT MIN(DEP_SEQ_ID) INTO :db_strMinDepSeqId
FROM DEP_FUND_INFO
WHERE TRAN_DATE = :db_strDate
AND (SEC_CODE = :db_strSecCode OR :db_strSecCode =:db_strHqId)
AND TRAN_TIME >= :db_strSTime
AND TRAN_TIME <= :db_strETime
AND TRAN_CODE in ('12001','12002');
请问这是什么原因,是SQL语句本身就有这样的规定吗?