babu_hi
New User
Joined: 11 Apr 2006 Posts: 93
|
|
|
|
EXEC SQL
DECLARE ARW_X9_CURSOR CURSOR FOR DYNSELECT
END-EXEC.
EXEC SQL
PREPARE DYNSELECT FROM :WS-DYN-SELECT
END-EXEC.
EXEC SQL
OPEN ARW_X9_CURSOR USING :WS-DBL-SEND-ABA,
:WS-DBL-RECV-ABA,
:WS-DBL-RESEND-IND,
:WS-DBL-FILE-RECV-IND,
:WS-DBL-CREATE-DATE,
:WS-DBL-CREATE-TIME,
:WS-DBL-BUSINESS-DATE,
:WS-DBL-CASH-LET-ID,
:WS-DBL-BUNDLE-ID,
:WS-DBL-HEADER
END-EXEC
The Dyn select statement is contain the SQL STATEMENT is
SELECT * FROM ARW0.ARWX9_T009
WHERE SEND_RT_NO = ? ',
AND RECV_RT_NO = ? ',
AND RESEND_IND = ? ',
AND FILE_RECV_CNT = ? ',
AND CREA_DTE = ? ',
AND CREA_TME = ? ',
AND CASH_LET_BUS_DTE = ? ',
AND CASH_LET_ID = ? ',
AND BUNDLE_ID = ? ',
AND CNTL_REC_IND = ?)
uBION
SELECT * FROM ARW0.ARWX9_T010
WHERE SEND_RT_NO = ? ',
AND RECV_RT_NO = ? ',
AND RESEND_IND = ? ',
AND FILE_RECV_CNT = ? ',
AND CREA_DTE = ? ',
AND CREA_TME = ? ',
AND CASH_LET_BUS_DTE = ? ',
AND CASH_LET_ID = ? ',
AND BUNDLE_ID = ? ',
AND CNTL_REC_IND = ?)
UNION
SELECT * FROM ARW0.ARWX9_T011
WHERE SEND_RT_NO = ? ',
AND RECV_RT_NO = ? ',
AND RESEND_IND = ? ',
AND FILE_RECV_CNT = ? ',
AND CREA_DTE = ? ',
AND CREA_TME = ? ',
AND CASH_LET_BUS_DTE = ? ',
AND CASH_LET_ID = ? ',
AND BUNDLE_ID = ? ',
AND CNTL_REC_IND = ?)
If sql statement contain UNION(more that one table),I am gettinh sqlcode -313.If only one table(no union) the above statement is working fine.
For more than one table how do i maintain OPEN statement in Dynemeic Sql for giving inputs to the where clause of sellect query? |
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
I had sworn off making caustic remarks, but what about the description of an sql code -313 don't you understand?
Quote: |
-313 THE NUMBER OF HOST VARIABLES
SPECIFIED IS NOT EQUAL TO THE
NUMBER OF PARAMETER MARKERS
Explanation: The number of host variables specified in the EXECUTE or OPEN statement
is not the same as the number of parameter markers (question marks) appearing in the prepared SQL statement.
System Action: The statement cannot be executed. Programmer
Response: Correct the application program so that the number of host
variables specified in the EXECUTE or OPEN statement is the same as the
number of parameter markers appearing in the prepared SQL statement.
The DESCRIBE INPUT SQL statement
can be used to determine the expected number of input
parameter markers
|
select * ?
only an ***** would do that, especially in dynamic sql. |
|