Re: SQLSTATE 42703 in SQLRPGLE program
Brian Parkins <[email protected]>
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <[email protected]> |
A very quick glance - should there be a colon (:) in front of SQLSTMT1
on the PREPARE?
>> prepare dynStmt1 from SqlStmt1;
Brian.
On 19/01/2026 19:48, K Crawford wrote:
> Below is part of my SQLRPGLE program.
> I am getting SQLSTATE 42703 on the PREPARE statement.
> What could it be?
> The two ? (dynamic selections) SSAN is numeric and PLANID is char. I have
> tried putting quotes around the ? for PLANID, but did not work.
> I have copied this SQL into ACS-RSS and it runs fine.
>
> Dcl-C SELECT_ActPlan CONST(' Select e.cobret, +
> e.qbnum, e.cobrarnum, e.ssan, +
> p.cvglevl, p.cvgtype, p.status, p.planid, +
> p.planstrt, p.evntdate3, +
> p.fdoc, p.ldoc, +
> p.cbrstrt, p.cbrstop, +
> p.termdate +
> from lib1/cobraE e +
> join lib1/cobraP p +
> on e.qbnum = p.idnum +
> where +
> (e.ssan = ? ) +
> and (p.planid = ? ) +
> and (p.status in ( ''E '', ''ED'', ''E4'', ''TE'')) +
> and (to_char(current date,''YYYYMMDD'') between p.PlanStrt +
> and (case when p.EvntDAte3 = 0 then 20991231 else p.EvntDate3 end)
> +
> ) +
> and (to_char(current date,''YYYYMMDD'') between p.fdoc and p.ldoc) +
> AND (to_char(current date,''YYYYMMDD'') between +
> p.cbrstrt and p.cbrstop) +
> AND ((to_char(current date,''YYYYMMDD'') between +
> p.cbrstrt and p.TERMDATE) +
> or (p.termdate = 0))');
>
> Dcl-DS ActPlanDS Qualified;
> cobret char(1);
> qbnum zoned(7:0);
> cobrarnum zoned(7:0);
> ssan zoned(9:0);
> cvglevl Char(4);
> cvgtype Char(9);
> status Char(2);
> planid Char(40);
> planstrt zoned(8:0);
> planend zoned(8:0);
> fdoc zoned(8:0);
> ldoc zoned(8:0);
> cbrstrt zoned(8:0);
> cbrstop zoned(8:0);
> termdate zoned(8:0);
> End-DS;
>
> SqlStmt1 = SELECT_ActPlan;
> // Prepare the statement
> exec sql
> prepare dynStmt1 from SqlStmt1;
> // Declare a cursor for the prepared statement
> Exec SQL
> DECLARE dynCursor1 CURSOR FOR dynStmt1;
> // Open the cursor with parameters
> Exec SQL
> OPEN dynCursor1 USING :w_ssan
> ,:w_planid;
> // Fetch the data into your data structure
> Exec SQL
> FETCH dynCursor1
> INTO :ActPlanDS;
> // Check if successful
> If SQLSTATE = '00000';
> // Process your data
>
>
>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.