× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



David -

In my humble opinion, it is very dangerous [and not very smart, I would add]
to use SQL to update source files when you are not sure what the current
value is.

I have written a command that I use to update source files, but it requires
that you /know/ the value you are changing /from/, and it lets you specify
the /new/ value.

For example, when we convert an old JDE RPG/400 program to RPGIV using
CVTRPGSRC, the newly created RPGIV source member still references the
original RPG/400 copy books, and thus will not compile properly:

D/COPY JDECPY,E0012
D/COPY JDECPY,E997

and so on...

We have already converted all of the JDE copy books, and the RPGIV versions
of these copy books are stored in a new source file that we created which is
named JDECPYLE.

My command makes it easy to change the name of the copybook source file in
the converted source.

Example:

UPDTSRCF
SRCMBR(P4311)
SRCFILE(MYLIB/JDESRCLE)
SRCHSTRING('/COPY JDECPY,')
RPLSTRING('/COPY JDECPYLE,')
BEGINPOS(7)
COMMENT(SJL)

changes them in the RPGIV source member to:

SJL D/COPY JDECPYLE,E0012
SJL D/COPY JDECPYLE,E997

and prints an edit report showing the lines changed, with the before and
after image of each changed line. Obviously you can still 'hose up' up a
source member with my command, but at least it shows you what you changed...

- sjl



David wrote:
Hi,
I want to modify this in a clp source :
MY_LABEL: CALL PGM(MGR123401)
So it becomes
MY_LABEL: CALL PGM(MGR589801)

I'm trying to use the REPLACE function in sql.
I've added the label for the WHERE clause.
The program name is a standard, ie, prefix MGR 4 numbers
and suffix(in this case 01) I know the new number, 5898,
but I cannot be sure of the old number to replace.
I could presume the program name occupies
the same position in the field SRCDTA
but that won't always work.

Something like
UPDATE Myfile SET SRCDTA =
REPLACE ( SRCDTA, '1234', MyNewNumber)
WHERE SRCDTA LIKE 'MY_LABEL:%'




As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.