Re: SQL Inserting into file based on records not in primary file
Marco Facchinetti <marco.facchinetti-kthxv0ud/[email protected]> Fri, 20 Feb 2026 17:41:05 +0100
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <CAMsgu4rZ0SupnC07Hin3KrO=s-6KwhDoAz+Q82LtVe9avj5ivg@mail.gmail.com> |
Hi Jerry, I don't know what's wrong but I would use: create table myNEWtable as(select * from myOLDtable where theField = 'whatever') with data HTH -- Marco Facchinetti Mr S.r.l. Tel. 035 962885 Cel. 393 9620498 Skype: facchinettimarco Il giorno ven 20 feb 2026 alle ore 17:32 Jerry Forss <[email protected]> ha scritto: > What I want to do is get all the records in a file that do not have a > match on a field in a primary file. > That work. > > Then I want to copy those records into a purge file before I actually > delete them. > That is failing. > > Here is the code. Just testing so it's messy. > **Free > Ctl-opt option(*SrcStmt : *NoDebugIO) > Dftactgrp(*NO) > ActGrp(*Caller); > > // > ==================================================================================== > // Files > // > ==================================================================================== > > > // > ==================================================================================== > // Copy Source > // > ==================================================================================== > > > // > ==================================================================================== > // Data Structures > // > ==================================================================================== > dcl-ds RecLayout extname('AMFLIBA/MBALREP'); > end-ds ; > // > ==================================================================================== > // Global Variables > // > ==================================================================================== > > Dcl-S IncludeRecords Char(200); > Dcl-S SQLSelect Char(200); > Dcl-S InsertSQL Char(200); > Dcl-S File Char(10); > Dcl-S Library Char(10); > Dcl-S PurgeLibrary Char(10); > Dcl-S Done Ind Inz('0'); > Dcl-S False Ind Inz('0'); > Dcl-S True Ind Inz('1'); > Dcl-C SqlOK Const('00000'); > Dcl-C SqlCmpError Const('01557'); > Dcl-C SqlTruncate Const('01004'); > > // > ==================================================================================== > // Prototypes > // > ==================================================================================== > > > // > ==================================================================================== > // Input Parameters > // > ==================================================================================== > > > // > ==================================================================================== > // Mainline > // > ==================================================================================== > > Exec sql SET OPTION CLOSQLCSR=*ENDMOD ; > > PurgeLibrary = 'PL20260220'; > Library = 'AMFLIBA'; > File = 'MBALREP'; > IncludeRecords = 'alcucd < 0 And alcucd Not In (Select s2cucd From > amfliba/mbs2rep'; > > // Check If File Is Locked > SqlSelect = 'SELECT * ' + > 'From ' + %Trim(Library) + '/' + %Trim(File) + ' ' + > 'Where ' + %Trim(IncludeRecords) + ')'; > > // Prepare Sql Statement > Exec SQL Prepare CopyCmd From :SqlSelect; > > // Declare Sql Cursor > Exec SQL Declare Csr10 Cursor For CopyCmd; > > // Run Sql Statement > Exec SQL Open Csr10; > > // Process Data Set > DoU Done; > > // Get Employee Data > Exec Sql Fetch Next From Csr10 Into : RecLayout; > > // If Eof Of Data or Unknown Error get out > If (SQLSTT <> SQLOK) > And (SQLSTT <> SQLCmpError); > Leave; > EndIf; > > InsertSQL = 'Insert Into ' + %Trim(PurgeLibrary) + '/' + %Trim(File) + > ' ' + > 'Values(?)'; > > // Prepare Sql Statement > Exec SQL Prepare InsertCmd From :InsertSql; > > // Insert into target table > Exec Sql Execute InsertCmd; > > EndDo; > > // Close cursor > Exec Sql > Close Csr10; > > > *InLr = True; > Return; > > It is giving the error > Additional Message Information > > Message ID . . . . . . : SQL0117 > Date sent . . . . . . : 02/20/26 Time sent . . . . . . : > 10:09:51 > > Message . . . . : Statement contains wrong number of values. > > Cause . . . . . : One of the following conditions may exist: > -- For an INSERT or UPDATE statement, the number of values is not the > same > as the number of columns. > -- For an UPDATE statement, the number of entries in the select list > of a > row fullselect does not match the number of columns listed in the SET > clause. > -- For an INSERT with subselect, the number of entries in the select > list > is not the same as the number of columns for the INSERT. > -- For an INSERT statement, one or more of the columns omitted from > the > column list was created as NOT NULL. > -- For an INSERT statement, one or more of the columns specified for > the > > More... > > What am I doing wrong? > > > > Subject to Change Notice: > > WalzCraft reserves the right to improve designs, and to change > specifications without notice. > > Confidentiality Notice: > > This message and any attachments may contain confidential and privileged > information that is protected by law. The information contained herein is > transmitted for the sole use of the intended recipient(s) and should "only" > pertain to "WalzCraft" company matters. If you are not the intended > recipient or designated agent of the recipient of such information, you are > hereby notified that any use, dissemination, copying or retention of this > email or the information contained herein is strictly prohibited and may > subject you to penalties under federal and/or state law. If you received > this email in error, please notify the sender immediately and permanently > delete this email. Thank You > > WalzCraft PO Box 1748 La Crosse, WI, 54602-1748 > www.walzcraft.com<https://www.walzcraft.com> Phone: 1-800-237-1326 > -- > 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.