You have a typo in one of your field names?
In IBM i, SQLSTATE 42703 indicates an "undefined column or parameter name"
was detected in the SQL statement. This error usually occurs when a column
name specified in your query does not exist in the referenced table, or
there is a typo in the name.
-----Original Message-----
From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of K Crawford
Sent: Monday, January 19, 2026 2:48 PM
To: [email protected]
Subject: SQLSTATE 42703 in SQLRPGLE program
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
--
Kerwin Crawford
--
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.
--
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.