SUBSTR creates a work field.... it's not a pointer into a data record and
therefore not the kind of thing that you can actually update with the SET
statement.

What you should be able to do though, is something like this:

UPDATE LIBRARY.FILE
SET FIELD = SUBSTR(DIGITS(FIELD,1,3)||'3'||SUBSTR(DIGITS(FIELD),5,2)
WHERE SUBSTR(DIGITS(FIELD),4,1) = '2';

Forgive if my concatenation syntax is incorrect.

HTH
Dennis






"Karl Keller" <kkeller@girling.com>@midrange.com on 12/11/2002 12:20:09 PM

Please respond to midrange-l@midrange.com

Sent by:    midrange-l-admin@midrange.com


To:    <midrange-l@midrange.com>
cc:
Subject:    Partial numeric field update in SQL


This is a multi-part message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
Hi Group,

    I have a file with a 6 digit numeric field. In that field is a YYYYMM
date. I'm trying to update the year to the next year. 2002 to 2003.

    My statement is:

UPDATE LIBRARY.FILE
SET SUBSTR(DIGITS(FIELD),4,1) = '3'
WHERE SUBSTR(DIGITS(FIELD),4,1) = '2';

It's barfing on the ( between the first SUBSTR & DIGITS. The error I'm
getting is [SQL0104] Token ( was not valid.

However if I run the following Select statement:

Select * from LIBRARY.FILE Where (SUBSTR(DIGITS(FIELD),4,1)) = '2'

it executes successfully. I could have sworn that I have done updates like
this before! Can someone please explain to me why this doesn't work?






As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.