<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4373663334124272866</id><updated>2026-08-15T16:52:58.739-05:00</updated><category term="programming"/><category term="sql"/><category term="rpg"/><category term="new release"/><category term="cl"/><category term="history"/><category term="operations"/><category term="user group"/><category term="dspf"/><category term="pf"/><category term="query"/><category term="ifs"/><category term="shared"/><category term="lf"/><category term="virtual user group"/><category term="node.js"/><title type='text'>RPGPGM.COM - From AS400 to IBM i</title><subtitle type='html'>Advice about programming, operations, communications, and anything else I can think of&lt;br&gt;&#xa;&lt;center&gt;&lt;em&gt;This blog is about IBM i for Power&lt;/em&gt;&lt;/center&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default?start-index=26&amp;max-results=25'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1129</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4876067615951859500</id><published>2026-08-12T05:00:00.000-05:00</published><updated>2026-08-12T05:00:00.112-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>New pseudo columns added for triggers</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I have written before about how to create triggers, &lt;a href=&quot;/2016/08/simple-trigger-to-save-changed-data.html&quot; target=&quot;_blank&quot;&gt;RPG trigger&lt;/a&gt; and &lt;a href=&quot;/2016/09/simple-sql-trigger.html&quot; target=&quot;_blank&quot;&gt;SQL trigger&lt;/a&gt;, and as I have written more, and talked with other people, SQL triggers are the better trigger.&lt;/p&gt;

&lt;p&gt;This has been reinforced an addition to &lt;i&gt;Db2 for i&lt;/i&gt; (SQL) as part of the latest rounds of Technology Refreshes, &lt;a href=&quot;/2026/07/first-tr-of-2026.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;2 and 7.5 TR8&lt;/a&gt;, what have been called &amp;quot;trigger pseudo columns&amp;quot;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;TRIGGER_FILE_NAME&lt;/tt&gt;:  File that caused the trigger to execute&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;TRIGGER_FILE_LIBRARY_NAME&lt;/tt&gt;:  The library that contains that file&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;TRIGGER_FILE_MEMBER_NAME&lt;/tt&gt;:  Member in that file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am going to add a trigger to the DDS file &lt;tt&gt;TESTFILE&lt;/tt&gt;. First, I need to &amp;quot;clone&amp;quot; the file to make the trigger output file. I can do this simply with SQL:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  CREATE TABLE MYLIB.TESTFTRG AS 
02  (SELECT * FROM MYLIB.TESTFILE) DEFINITION ONLY
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/08/new-pseudo-columns-added-for-triggers.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4876067615951859500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/08/new-pseudo-columns-added-for-triggers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4876067615951859500'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4876067615951859500'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/08/new-pseudo-columns-added-for-triggers.html' title='New pseudo columns added for triggers'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5358791379810580872</id><published>2026-08-10T05:00:00.000-05:00</published><updated>2026-08-10T05:00:00.118-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>ACS release 1.1.9.14 out now</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyDKdAcBrsjkD0S91KFQ9s3xp0B7NFnDG4veJ3Ns2soXeefddbzHYOL8QzSI2UybQ2t1BNygQXVTrkYRsVRHs4OBQQOPvIPRoXVVtx1I9PGjnJd5k6Bz5cyadZ5TZPkh8uBcvscnui8C2PMyeQYCJfGovpEQ-qdtaYpH6LqXBHqvCXoXM9vDKd4YPeII/s200/acs_logo.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;On Saturday, August 8, my ACS alerted me a new release, 1.1.9.14, is available.&lt;/p&gt;

&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfxyqXkMc1n91_Vy-KQbpBkNDPwg__spKuP2miT0kZmIzIRk21XEU4OtP4TYI4XtDlKf1NWS6h4wtM6oKZCHBg477luznvkmNafPzFfAPa4JoINzXnMszGSQcvH55-CXhPCkUwvXOwGCh7_RB-jdQ6ldUCPExyMlWuSoOlTQZstNoON5m9CvlELeP7MRs/s1600/acs1.png&quot;&gt;
&lt;/center&gt;

&lt;p&gt;IBM&amp;#39;s ACS page stated that the new release remedied some vulnerabilities that have been found in all prior releases of ACS, and a number of &lt;a href=&quot;/2026/07/it-is-now-so-easy-to-view-cve-using-sql.html&quot; target=&quot;_blank&quot;&gt;&lt;abbr title=&quot;Common Vulnerabilities and Exposures&quot;&gt;CVE&lt;/abbr&gt;&lt;/a&gt; security fixes.&lt;/p&gt; 
  
&lt;p&gt;There are no new enhancements included.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/08/acs-release-11914-out-now.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5358791379810580872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/08/acs-release-11914-out-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5358791379810580872'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5358791379810580872'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/08/acs-release-11914-out-now.html' title='ACS release 1.1.9.14 out now'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyDKdAcBrsjkD0S91KFQ9s3xp0B7NFnDG4veJ3Ns2soXeefddbzHYOL8QzSI2UybQ2t1BNygQXVTrkYRsVRHs4OBQQOPvIPRoXVVtx1I9PGjnJd5k6Bz5cyadZ5TZPkh8uBcvscnui8C2PMyeQYCJfGovpEQ-qdtaYpH6LqXBHqvCXoXM9vDKd4YPeII/s72-c/acs_logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5327693598452600986</id><published>2026-08-05T05:00:00.000-05:00</published><updated>2026-08-05T05:00:00.199-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>QCMDEXC scalar function can write to job log</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;


&lt;p&gt;The &lt;a href=&quot;/2022/11/using-sql-qcmdexc-to-simplify-cleanup.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;QCMDEXC&lt;/tt&gt; SQL scalar function&lt;/a&gt; is one of my favorite SQL features. I have used it many times in my work, and here in articles on this website. As part of the latest Technology Refresh, &lt;a href=&quot;/2026/07/first-tr-of-2026.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;2 and 7.5 TR8&lt;/a&gt;, it is further enhanced by now being able to write the command performed to the job log.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;QCMDEXC&lt;/tt&gt; scalar function now has two parameters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;tt&gt;COMMAND&lt;/tt&gt;:  The CL command to perform&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;PRINT&lt;/tt&gt;:  Whether the CL command should be written to the job log. This can contain the following:
&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;ERROR&lt;/tt&gt;:  Only write to the job log if the command fails&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;NONE&lt;/tt&gt;:  No command is written to the job log. This is the default &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;VERBOSE&lt;/tt&gt;:  The command is always written to the job log&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before I start describing in details what this change does, I need to have something I can do using the &lt;tt&gt;QCMDEXC&lt;/tt&gt; scalar function. In this scenario I have a &lt;a href=&quot;/2019/01/create-sql-tables-views-and-indexes.html&quot; target=&quot;_blank&quot;&gt;DDL table&lt;/a&gt;, &lt;tt&gt;TESTTABLE&lt;/tt&gt;, that contains a list of files that I want to delete using a Delete File command, &lt;tt&gt;DTLF&lt;/tt&gt;, in this scalar function.&lt;/p&gt;

&lt;p&gt;I can show the contents of this table with the following:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  SELECT * FROM TESTTABLE
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
  
&lt;a href=&quot;https://www.rpgpgm.com/2026/08/qcmdexc-scalar-function-can-write-to.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5327693598452600986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/08/qcmdexc-scalar-function-can-write-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5327693598452600986'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5327693598452600986'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/08/qcmdexc-scalar-function-can-write-to.html' title='QCMDEXC scalar function can write to job log'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4152639300934795235</id><published>2026-08-04T05:00:00.000-05:00</published><updated>2026-08-04T05:00:00.119-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operations"/><title type='text'>Handling pipe separated data into a Db2 file</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG1lMR3z_sLT_8di2NSz8JAK3FOXfrvraszj9KHIy9k46IBLb5mmg6PCXvkJAIx6z1BLNdc3LwgOYKIFcxlq0Sa8vrp1D4M9dCPFn8ozG3FS_vBH2hiIrq3-s4vD7Ttz-cpbeeKGg1dyCHo3sKbhK6aaznJBqyF1Lz-qyNWnexfAWKa-R6nxuSnyw0VDk/s200/ops.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;It started with a question:&lt;/p&gt;

&lt;blockquote class=&quot;blockquote-custom&quot;&gt;
&lt;p&gt;If my file.txt is pipe filed separated, how can I make the records fall into the physical file to the corresponding fields.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A good question. Most of the time my incoming files are comma separated. The same methods I would use for those will work for pipe separated files too.&lt;/p&gt;

&lt;p&gt;First I need a file with pipe separators. I made a &lt;a href=&quot;/2014/01/creating-sql-table-on-fly.html&quot; target=&quot;_blank&quot;&gt;copy of some of the columns from my &lt;tt&gt;PERSON&lt;/tt&gt; DDL table to an output file&lt;/a&gt; in &lt;tt&gt;QTEMP&lt;/tt&gt;:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  CREATE TABLE QTEMP.OUTFILE AS 
02  (SELECT PID,LNAME,FNAME FROM PERSON)
03  WITH DATA
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/08/handling-pipe-separated-data-into-db2.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4152639300934795235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/08/handling-pipe-separated-data-into-db2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4152639300934795235'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4152639300934795235'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/08/handling-pipe-separated-data-into-db2.html' title='Handling pipe separated data into a Db2 file'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG1lMR3z_sLT_8di2NSz8JAK3FOXfrvraszj9KHIy9k46IBLb5mmg6PCXvkJAIx6z1BLNdc3LwgOYKIFcxlq0Sa8vrp1D4M9dCPFn8ozG3FS_vBH2hiIrq3-s4vD7Ttz-cpbeeKGg1dyCHo3sKbhK6aaznJBqyF1Lz-qyNWnexfAWKa-R6nxuSnyw0VDk/s72-c/ops.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8538798789849653613</id><published>2026-07-30T05:00:00.000-05:00</published><updated>2026-08-03T07:39:16.296-05:00</updated><title type='text'>RPGPGM.COM-unity on the West Coast</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s400/ribbon.jpg&quot; width=&quot;400&quot;/&gt;
&lt;/center&gt;

&lt;p&gt;I was at &lt;a href=&quot;https://www.oceanusergroup.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;OCEAN&lt;/a&gt;’s TechCon26 conference earlier this month,  and I was able to enroll a few more people into the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt;. You can see who these people are &lt;a href=&quot;https://rpgpgmcomunity.rpgpgm.com/p/rpgpgmcom-unity-2026.html#techcon26&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you see me at an &lt;em&gt;IBM i&lt;/em&gt; event feel free to introduce yourself to me, ask for your own &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; ribbon, and you will become part of this community.  All I ask in return is a photograph of you with it.&lt;/p&gt;

&lt;p&gt;If you would like to learn more about the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; click &lt;a href=&quot;https://rpgpgmcomunity.rpgpgm.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8538798789849653613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/rpgpgmcom-unity-on-west-coast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8538798789849653613'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8538798789849653613'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/rpgpgmcom-unity-on-west-coast.html' title='RPGPGM.COM-unity on the West Coast'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s72-c/ribbon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4006734237387089747</id><published>2026-07-29T05:00:00.000-05:00</published><updated>2026-07-29T05:00:00.111-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>It is now so easy to view CVE using SQL</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Before I start describing how to use this new SQL Table Function, I need to explain what CVE are.&lt;/p&gt;

&lt;p&gt;Common Vulnerabilities and Exposures, &lt;abbr title=&quot;Common Vulnerabilities and Exposures&quot;&gt;CVE&lt;/abbr&gt;, are standardized, publicly identified cybersecurity flaws in software or firmware. When IBM, or a researcher, find a flaw in &lt;em&gt;IBM i&lt;/em&gt;, or related software, it is given a unique id. These ids are cataloged globally by the &lt;a href=&quot;https://www.mitre.org/news-insights/news-release/cve-program-celebrates-25-years-impact-cybersecurity&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;MITRE Corporation&lt;/a&gt;, and published with their severity and impacts.&lt;/p&gt;

&lt;p&gt;You can learn more about CVE on &lt;a href=&quot;https://www.ibm.com/think/topics/cve&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;IBM&amp;#39;s &amp;quot;What is CVE?&amp;quot; page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I cannot find a CL command that allows me to view CVE details. I would have to search for a particular CVE using the &lt;a href=&quot;https://www.ibm.com/support/pages/bulletin/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; IBM Product Security Central&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;With the latest Technology Refreshes, &lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;2 and 7.5 TR8, is a new SQL Table Function that allows me view, and search, all of CVE from my &lt;em&gt;IBM i&lt;/em&gt; partition.&lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;CVE_INFO&lt;/tt&gt; Table Function is found in the library &lt;tt&gt;SYSTOOL&lt;/tt&gt;, it has one parameter the &lt;em&gt;IBM i&lt;/em&gt; release number. I went through and checked for each release to find that V5R3 is the earliest there are results for:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/it-is-now-so-easy-to-view-cve-using-sql.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4006734237387089747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/it-is-now-so-easy-to-view-cve-using-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4006734237387089747'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4006734237387089747'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/it-is-now-so-easy-to-view-cve-using-sql.html' title='It is now so easy to view CVE using SQL'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4773717724246416428</id><published>2026-07-24T05:00:00.000-05:00</published><updated>2026-07-24T07:24:11.204-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>First Technology Refreshes of 2026 released today</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_JeuhayaTu7PB8TiXMtze7XciJ1q7B5XZF72hXgJ3cvsffcklIGA5U2lxSsvxGOqLU1Hw5E9YsB-UbQqeLmDNybvdjbzfiFQd0f8wqrhpSqBBzJ58TiLsj-aw4XX1tkUvxcuT0yTMAPHQiaW8LT1yjs3tHG1IC5BfhSKic5xx3NRiIxi1mY2bf4jJiyc/s200/ibm_i_2021.png&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;The PTFs for the &lt;a href=&quot;/2026/07/first-tr-of-2026.html&quot; target=&quot;_blank&quot;&gt;Technology Refreshes&lt;/a&gt;, &lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;2 and 7.5 TR8, announced two weeks ago are released today.&lt;/p&gt;

&lt;p&gt;When you ask your Sys Admin to download and apply the PTFs don&#39;t forget to tell them that they need to download the latest PTFs for Database (Db2) and RPG too.&lt;/p&gt;

&lt;p&gt;I am looking forward to &quot;&lt;i&gt;playing&lt;/i&gt;&quot; with all the new and enhanced features added, and will be writing about them here, on &lt;a href=&quot;https://www.rpgpgm.com/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;RPGPGM.COM&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4773717724246416428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/first-technology-refreshes-of-2026.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4773717724246416428'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4773717724246416428'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/first-technology-refreshes-of-2026.html' title='First Technology Refreshes of 2026 released today'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_JeuhayaTu7PB8TiXMtze7XciJ1q7B5XZF72hXgJ3cvsffcklIGA5U2lxSsvxGOqLU1Hw5E9YsB-UbQqeLmDNybvdjbzfiFQd0f8wqrhpSqBBzJ58TiLsj-aw4XX1tkUvxcuT0yTMAPHQiaW8LT1yjs3tHG1IC5BfhSKic5xx3NRiIxi1mY2bf4jJiyc/s72-c/ibm_i_2021.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2718200721921781594</id><published>2026-07-22T05:00:00.000-05:00</published><updated>2026-07-22T05:01:51.312-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Program to alert when elapsed CPU percentage becomes too high</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;When I published my article about &lt;a href=&quot;/2026/06/program-to-alert-when-jobs-cpu.html&quot; target=&quot;_blank&quot;&gt;Program to alert when jobs&amp;#39; CPU percentage becomes too high&lt;/a&gt; someone messaged me asking could I think of something that would do the same when the total CPU exceeded a certain percentage. The answer is, of course, &amp;quot;Yes&amp;quot;.&lt;/p&gt;

&lt;p&gt;Before I create a program we need to consider the whether the partition that the program will be run on is &amp;quot;capped&amp;quot; or &amp;quot;uncapped&amp;quot;. What does that mean?&lt;/p&gt;

&lt;p&gt;When a partition is capped it cannot use more than its allocated processing units, in other words it can never exceed 100% CPU usage.&lt;/p&gt;

&lt;p&gt;While an uncapped partition has its base entitlement of the processing units, but can borrow unused processing power from the other partitions if available. This means that its CPU usage can exceed 100% of the partition&amp;#39;s resources.&lt;/p&gt; 

&lt;p&gt;This means that 90% CPU utilization could be more concerning on a capped than an uncapped. Keep this in mind when you look at my example program.&lt;/p&gt;

&lt;p&gt;I always use ACS&amp;#39;s Run SQL Scripts, &lt;abbr title=&quot;Run SQL Scripts&quot;&gt;RSS&lt;/abbr&gt;, to develop the SQL statements I will be including in a RPG program. I can get the elapsed CPU percentage from the &lt;a href=&quot;/2020/01/retrieving-hosts-name-using-sql-view.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;SYSTEM_STATUS&lt;/tt&gt;&lt;/a&gt; SQL table function:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/program-to-alert-when-elapsed-cpu.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2718200721921781594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/program-to-alert-when-elapsed-cpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2718200721921781594'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2718200721921781594'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/program-to-alert-when-elapsed-cpu.html' title='Program to alert when elapsed CPU percentage becomes too high'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-9213695555344744755</id><published>2026-07-15T05:00:00.000-05:00</published><updated>2026-07-15T14:10:18.283-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>New model of IBM Power 11 announced</title><content type='html'>&lt;img align=&quot;right&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s200-rw/ibm_logo.jpg&quot; width=&quot;200&quot;&gt;

&lt;p&gt;Along with the announcement of the &lt;a href=&quot;/2026/07/first-tr-of-2026.html&quot; target=&quot;_blank&quot;&gt;latest Technology Refreshes&lt;/a&gt; came another announcement for the smallest of the &lt;a href=&quot;/2025/07/ibm-power-11-chips-and-servers-are.html&quot; target=&quot;_blank&quot;&gt;IBM Power11&lt;/a&gt; servers, S1112.&lt;/p&gt;

&lt;p&gt;I am not a hardware &lt;i&gt;geek&lt;/i&gt;, more of a software one, but having read the announcement document I think it is something worth reporting upon.&lt;/p&gt;

&lt;p&gt;S1112 is in the P05 software tier that can run &lt;em&gt;IBM i&lt;/em&gt; AIX, Linux, or hybrid workloads on one server.&lt;/p&gt;

&lt;p&gt;It comes in two configuations:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/new-model-of-ibm-power-announced.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/9213695555344744755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/new-model-of-ibm-power-announced.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9213695555344744755'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9213695555344744755'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/new-model-of-ibm-power-announced.html' title='New model of IBM Power 11 announced'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s72-c-rw/ibm_logo.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5981760901886815224</id><published>2026-07-14T05:00:00.000-05:00</published><updated>2026-07-14T14:14:13.127-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>First TR of 2026</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_JeuhayaTu7PB8TiXMtze7XciJ1q7B5XZF72hXgJ3cvsffcklIGA5U2lxSsvxGOqLU1Hw5E9YsB-UbQqeLmDNybvdjbzfiFQd0f8wqrhpSqBBzJ58TiLsj-aw4XX1tkUvxcuT0yTMAPHQiaW8LT1yjs3tHG1IC5BfhSKic5xx3NRiIxi1mY2bf4jJiyc/s200/ibm_i_2021.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;The deferred first Technology Refreshes of 2026 PTFs, &lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;2 and 7.5 TR8, have been announced.&lt;/p&gt;

&lt;p&gt;The first thing I do when any new TR announcement is made is to check out what enhancements have been made to &lt;i&gt;Db2 for i&lt;/i&gt; (SQL) and RPG. Do note that there are a number of changes and additions made to &lt;em&gt;IBM i&lt;/em&gt; 7.6 that have not been made to 7.5.&lt;/p&gt;

&lt;p&gt;The SQL that have caught my eye are:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/first-tr-of-2026.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5981760901886815224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/first-tr-of-2026.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5981760901886815224'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5981760901886815224'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/first-tr-of-2026.html' title='First TR of 2026'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_JeuhayaTu7PB8TiXMtze7XciJ1q7B5XZF72hXgJ3cvsffcklIGA5U2lxSsvxGOqLU1Hw5E9YsB-UbQqeLmDNybvdjbzfiFQd0f8wqrhpSqBBzJ58TiLsj-aw4XX1tkUvxcuT0yTMAPHQiaW8LT1yjs3tHG1IC5BfhSKic5xx3NRiIxi1mY2bf4jJiyc/s72-c/ibm_i_2021.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5793080657224884522</id><published>2026-07-13T05:00:00.000-05:00</published><updated>2026-07-13T05:00:00.111-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operations"/><title type='text'>Spring 2026 Performance Guide available</title><content type='html'>&lt;img align=&quot;right&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s200-rw/ibm_logo.jpg&quot; width=&quot;200&quot; /&gt;

&lt;p&gt;A new version of IBM&#39;s &quot;IBM i on Power – Performance FAQ&quot; was published at the beginning of this month, and is available for download.&lt;/p&gt;

&lt;p&gt;The guide provides us with tips on how to measure, and improve, the performance of your IBM Power server, &lt;em&gt;IBM i&lt;/em&gt; partitions, Db2 database, and programs that run within it.&lt;/p&gt;

&lt;p&gt;You will find the document &lt;a href=&quot;https://www-api.ibm.com/adobe/assets/urn:aaid:aem:84715ed3-de7d-426a-92f3-43f438ebad4d/original/as/POW03102.pdf&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I always download it and read the passages I feel are relevant to my situation. I recommend you do the same.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5793080657224884522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/spring-2026-performance-guide-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5793080657224884522'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5793080657224884522'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/spring-2026-performance-guide-available.html' title='Spring 2026 Performance Guide available'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s72-c-rw/ibm_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-249102059609286503</id><published>2026-07-10T05:00:00.000-05:00</published><updated>2026-07-10T05:00:00.120-05:00</updated><title type='text'>More information regarding IBM Bob Premium Package</title><content type='html'>&lt;img height=&quot;200&quot; data-original-height=&quot;226&quot; data-original-width=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s200/bob.jpg&quot; align=&quot;right&quot;/&gt;

&lt;p&gt;IBM made an announcement yesterday, Thursday July 9, with more information about the new IBM Bob Premium Package for i. This includes some more information about the additions to it.&lt;/p&gt;

&lt;p&gt;I am not going to repeat what is says. Just provide you with the link to it &lt;a href=&quot;https://www.ibm.com/new/announcements/introducing-the-ibm-bob-premium-package-for-i&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/249102059609286503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/more-information-regarding-ibm-bob.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/249102059609286503'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/249102059609286503'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/more-information-regarding-ibm-bob.html' title='More information regarding IBM Bob Premium Package'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s72-c/bob.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-9022324831368142669</id><published>2026-07-08T05:00:00.000-05:00</published><updated>2026-07-08T05:00:00.111-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Using SQL to retrieve information from the internet</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;There are many different web sites that offer information that would be useful to consume in &lt;em&gt;IBM i&lt;/em&gt;. I have seen several examples of doing this, and I thought I would show my example, which I think, shows how simple it can be.&lt;/p&gt;

&lt;p&gt;In my example I want to retrieve the share prices for the three biggest technology companies in the city I live in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dell, stock symbol: &lt;tt&gt;DELL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;IBM, symbol: &lt;tt&gt;IBM&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Tesla, symbol: &lt;tt&gt;TSLA&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/9022324831368142669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9022324831368142669'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9022324831368142669'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html' title='Using SQL to retrieve information from the internet'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-3554787015413089635</id><published>2026-07-01T05:00:00.000-05:00</published><updated>2026-07-01T05:00:00.113-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Retrieving the value of a column from a previous row</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;


&lt;p&gt;I was sent a copy of a job log from weeks ago, and had been asked to identify which parts of the job had run the longest. Fortunately, the spool file of the job log was still available so I could do some SQL &lt;i&gt;magic&lt;/i&gt; to extract useful information from it. The first thing I want to do is to determine is how long each program or command took. I can extract the timestamp from the spool file, but I need to be able to retrieve the timestamp for the previous entry too. How can I retrieve that information for the previous entry?&lt;/p&gt;

&lt;p&gt;After a bit of searching I found a SQL function that would allow me to do this. Rather than go straight into showing what I did with the joblog spool file, I am going to start with a simpler example. I have a DDL table, &lt;tt&gt;TESTTABLE&lt;/tt&gt;, that has a decimal column, &lt;tt&gt;TEST_NUMBER&lt;/tt&gt;, and nine rows of data. I can show the data using the following SQL statement:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  SELECT TEST_NUMBER
02    FROM TESTTABLE
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Which returns:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/3554787015413089635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3554787015413089635'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3554787015413089635'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html' title='Retrieving the value of a column from a previous row'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-7662028778501491097</id><published>2026-06-29T05:00:00.000-05:00</published><updated>2026-06-29T05:00:00.152-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operations"/><title type='text'>Migrate While Active Redbook</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRN-WhgRs-bxb2hYCPlCvRKDYyPIkl12I4As_i6dRS3k5lW3C4ecOUwWOY4EmPZrmoyuJKMxRgrs5cGkEGG-98lT7pglYSFkS1RxK0dgGmeLapKtWYCn5wltb13W3LyQ8JdaiyE76F_sbxE1YM-uS1jvCeqL8hPo_kYyDOCrv0r-RWqR2conxZ8jtypqM/s200/ibm_logo.jpg&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Migrate While Active, &lt;abbr title=&quot;Migrate While Active&quot;&gt;MWA&lt;/abbr&gt;, is one of the more exciting features recently introduced for &lt;em&gt;IBM Power&lt;/em&gt; hardware and the &lt;em&gt;IBM i&lt;/em&gt; operating system. It is tool that helps me to move &lt;em&gt;IBM i&lt;/em&gt; workloads to new servers, data centers, or the cloud with near-zero downtime.&lt;/p&gt;

&lt;p&gt;Basically MWA is performed in three steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Background Copy: A copy of the partition is made, while the source partition is fully online and active.&lt;/li&gt;
&lt;li&gt;Data Sync: It constantly synchronizes all data changes from the live system to the copy.&lt;/li&gt;
&lt;li&gt;Cutover: Once both match, I make the switch to the new partition.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This results in almost no interruption in service.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/7662028778501491097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7662028778501491097'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7662028778501491097'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html' title='Migrate While Active Redbook'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRN-WhgRs-bxb2hYCPlCvRKDYyPIkl12I4As_i6dRS3k5lW3C4ecOUwWOY4EmPZrmoyuJKMxRgrs5cGkEGG-98lT7pglYSFkS1RxK0dgGmeLapKtWYCn5wltb13W3LyQ8JdaiyE76F_sbxE1YM-uS1jvCeqL8hPo_kYyDOCrv0r-RWqR2conxZ8jtypqM/s72-c/ibm_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2117893568705686880</id><published>2026-06-25T05:00:00.000-05:00</published><updated>2026-06-25T07:10:36.849-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>IBM Bob Premium Package for i released</title><content type='html'>&lt;img height=&quot;200&quot; data-original-height=&quot;226&quot; data-original-width=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s200/bob.jpg&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Today the first significant update for &lt;a href=&quot;https://bob.ibm.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;IBM Bob&lt;/a&gt;, the AI-development tool for &lt;em&gt;IBM i&lt;/em&gt; has been released.&lt;/p&gt;

&lt;p&gt;It is called &lt;em&gt;IBM Bob Premium Package for i&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can read the announcement, that gives you all the details on the new features, &lt;a href=&quot;https://bob.ibm.com/blog/bob-v2-release-announcement&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is also an Overview page, that includes the link to download it, &lt;a href=&quot;https://bob.ibm.com/docs/ide/premium-packages/bob-for-i/bob-for-i-index&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You do have to be using IBM Bob 2.0.0 to use &lt;em&gt;IBM Bob Premium Package for i&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;After the first paragraph in the Overview document is a button to &amp;quot;Copy Markdown&amp;quot;. I strongly recommend you do. I clicked the button and then pasted what was copied into Notepad. The markdown contains all kinds of useful information to successfully install the new version.&lt;/p&gt;

&lt;p&gt;Within markdown are some paths to further documentation. As paths do not include the domain I have for your convenience done so below:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2117893568705686880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2117893568705686880'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2117893568705686880'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html' title='IBM Bob Premium Package for i released'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s72-c/bob.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5200747531360166272</id><published>2026-06-24T05:00:00.000-05:00</published><updated>2026-06-30T13:55:19.563-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Calculating the number of seconds for a time</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I have to admit this was a strange request. Interfacing data to another application is no big deal, but the way it wanted its date and time data formatted was. It wanted a character date, in *MDY format with the date separator characters, character time, with dots as the separator character, and an integer of the number of seconds that the time represented.&lt;/p&gt;

&lt;p&gt;I could calculate the seconds as:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
TotalSeconds = (Hours x 3600) + (Minutes x 60) + Seconds
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Fortunately I stumbled across a SQL scalar function that would do this for me: &lt;tt&gt;MIDNIGHT_SECONDS&lt;/tt&gt;. This returns the number of seconds that the time represents. Which is exactly what I am looking for.&lt;/p&gt;

&lt;p&gt;I can demonstrate this with the following SQL statement:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5200747531360166272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5200747531360166272'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5200747531360166272'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html' title='Calculating the number of seconds for a time'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5274808794220115004</id><published>2026-06-22T05:00:00.003-05:00</published><updated>2026-06-22T05:00:00.124-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="history"/><title type='text'>Another anniversary for IBM i and IBM Power</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSVxnOaD5DhrH7sNuIwLUGgPKXMt4w6bWYN05rIF0CmtfPcDTKgKAtWlOOldaDYHXdQ5XgtYI9EYP9mKV46HD5aEFwlFsZ2gdZ3wY9HbuAStxPAz238PkdypGGSU3RG9Zlpm8czqCdqQMdoqWTc1CLz7MDKLDml-_uCP_FTUWvT6ex-Hj6s0q1GCNXlX8/s320/38th.png&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;Yesterday, Sunday June 21 2026, was the 38th anniversary of when the ancestor of the IBM Power and &lt;em&gt;IBM i&lt;/em&gt;, AS/400, was first announced. Excitement was high as the advancements made to create AS/400 were ground breaking, many other maufactures spent years developing the equivalent technologies into their hardware and software.&lt;/p&gt;

&lt;p&gt;Over the past 38 years a lot has changed, the AS/400 evolved through different forms, and names, before becoming the IBM Power server back in 2008.&lt;/p&gt;

&lt;p&gt;Does this mean that the &quot;AS/400&quot; is old and outdated? The Power servers can run several different operating system, including &lt;em&gt;IBM i&lt;/em&gt;. With the modern &lt;em&gt;IBM i&lt;/em&gt; operating system we can emulate the AS/400, and this advanced operating system can do so much more than the AS/400, and its operating system OS/400, ever could.&lt;/p&gt;

&lt;p&gt;I think I did a good job describing this history for the 35th anniversary. If you are interested in learning more what AS/400 was, and what it has become, read the story &lt;a href=&quot;/2023/06/35th-anniversary-of-ibm-i.html&quot; target=&quot;_blank&quot; title=&quot;35th anniversary of AS400, IBM Power, and IBM i&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy birthday IBM Power and &lt;em&gt;IBM i&lt;/em&gt;! May you have many more!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5274808794220115004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/another-anniversary-for-ibm-i-and-ibm.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5274808794220115004'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5274808794220115004'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/another-anniversary-for-ibm-i-and-ibm.html' title='Another anniversary for IBM i and IBM Power'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSVxnOaD5DhrH7sNuIwLUGgPKXMt4w6bWYN05rIF0CmtfPcDTKgKAtWlOOldaDYHXdQ5XgtYI9EYP9mKV46HD5aEFwlFsZ2gdZ3wY9HbuAStxPAz238PkdypGGSU3RG9Zlpm8czqCdqQMdoqWTc1CLz7MDKLDml-_uCP_FTUWvT6ex-Hj6s0q1GCNXlX8/s72-c/38th.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1297972163095462074</id><published>2026-06-17T05:00:00.000-05:00</published><updated>2026-06-17T05:00:00.164-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Program to alert when jobs&#39; CPU percentage becomes too high</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj53FB7SXIBEh7MlUrBkrON4n75UG36cWk_VPC-GqUI3imK92s5PoC_iToTCRzGm6dolGPWIiBvzut_FdyVYeDUnsWUfVYb5EnQ5sW2IodBAU3JW5n-Mio6rwDILhl5E97xy8YxyEIaX7ekCG89OiJlNMXdobFy_0XqmWULuA_tgxtqZc51EzM7aag2gEA/s200/rpg.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I was asked if there was a way to alert if a job exceeded a certain threshold of CPU percentage. The &lt;em&gt;IBM i&lt;/em&gt; operating system collects data through Collection Services. Navigator for i and Performance Data Investigator, &lt;abbr title=&quot;Performance Data Investigator&quot;&gt;PDI&lt;/abbr&gt;, can be used to analyze CPU heavy jobs, but this is all historical data there is no real time alerting.&lt;/p&gt;

&lt;p&gt;There are various tools from &lt;abbr title=&quot;Independent Software Vendors&quot;&gt;ISV&lt;/abbr&gt; that can do this. For this website I always write about solutions using just what comes in the &lt;em&gt;IBM i&lt;/em&gt; operating system, with no third party software.&lt;/p&gt;

&lt;p&gt;This problem allows me to use one of my favorite &lt;i&gt;Db2 for i&lt;/i&gt; table function, &lt;a href=&quot;/2015/11/getting-active-jobs-data-using-sql.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;ACTIVE_JOB_INFO&lt;/tt&gt;&lt;/a&gt;. This table function allows me to retrieve information about all of the active jobs on my partition.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1297972163095462074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1297972163095462074'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1297972163095462074'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html' title='Program to alert when jobs&#39; CPU percentage becomes too high'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj53FB7SXIBEh7MlUrBkrON4n75UG36cWk_VPC-GqUI3imK92s5PoC_iToTCRzGm6dolGPWIiBvzut_FdyVYeDUnsWUfVYb5EnQ5sW2IodBAU3JW5n-Mio6rwDILhl5E97xy8YxyEIaX7ekCG89OiJlNMXdobFy_0XqmWULuA_tgxtqZc51EzM7aag2gEA/s72-c/rpg.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5632999225778281525</id><published>2026-06-10T04:00:00.000-05:00</published><updated>2026-07-30T10:42:26.862-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="history"/><title type='text'>RPGPGM.COM becomes a teenager</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvmZrM3uziCFlkhpzc3MRnMxXPyYwGxfFly2E6l8-6FKCyrGdhwsp8Z284citpMY0wSxMLHr6mJnfOqjm7sIOZA68AuAlbvZlN0Cs2pYcSwNFILi9YXWcPJZpj-cDxy_nf_1shveoLWYVeCUdPM0uCbd4UzJT6HLCakGBFKqZKJu-dQTADOqTEM4CPko/s320/1.jpeg&quot;&gt;
&lt;/center&gt;

&lt;p&gt;Another year milestone has been reached as I celebrate the 13th birthday of &lt;em&gt;RPGPGM.COM&lt;/em&gt;. It has been an incredible personal journey since I have published that first post in 2013. Your &lt;a href=&quot;/p/testimonials.html&quot; target=&quot;_blank&quot;&gt;feedback and encouragement&lt;/a&gt; have made all the effort I have spent worthwhile.&lt;/p&gt;

&lt;p&gt;What has happened to me in the past twelve months?&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5632999225778281525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5632999225778281525'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5632999225778281525'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html' title='RPGPGM.COM becomes a teenager'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvmZrM3uziCFlkhpzc3MRnMxXPyYwGxfFly2E6l8-6FKCyrGdhwsp8Z284citpMY0wSxMLHr6mJnfOqjm7sIOZA68AuAlbvZlN0Cs2pYcSwNFILi9YXWcPJZpj-cDxy_nf_1shveoLWYVeCUdPM0uCbd4UzJT6HLCakGBFKqZKJu-dQTADOqTEM4CPko/s72-c/1.jpeg" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2772037222090523955</id><published>2026-06-03T05:00:00.000-05:00</published><updated>2026-06-03T05:00:00.108-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Determining the Ordinal date with SQL</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;A friend asked me if there was a simple way to calculate the &amp;quot;Julian&amp;quot; date when retrieving dates from a DDL table or DDS file with a date type field.&lt;/p&gt;

&lt;p&gt;Before I continue I need to describe the difference between the Julian and the Ordinal dates. While we all call a date in &lt;tt&gt;YYYYDDD&lt;/tt&gt; a &amp;quot;Julian&amp;quot; date, that is not correct. The Julian date is a count of days since January 1, 4713 BCE. I found this helpful &lt;a href=&quot;https://raleighastro.org/blog/2009/05/17/origin-of-julian-days/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt; describing why it is this date. The correct name for the &lt;tt&gt;YYYYDDD&lt;/tt&gt; date is the Ordinal date, which is recognized by the ISO 8601 standard.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Db2 for i&lt;/i&gt; includes a Julian day scalar function. The statement below show me using it with the date June 1, 2026:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  VALUES JULIAN_DAY(&amp;#39;2026-06-01&amp;#39;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;The result is:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/determining-ordinal-date-with-sql.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2772037222090523955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/determining-ordinal-date-with-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2772037222090523955'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2772037222090523955'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/determining-ordinal-date-with-sql.html' title='Determining the Ordinal date with SQL'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-6624222652861299593</id><published>2026-05-28T05:00:00.000-05:00</published><updated>2026-08-10T05:13:49.747-05:00</updated><title type='text'>ACS 1.1.9.13 is replaced</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The original contents of this page have become obsolete, go to &lt;a href=&quot;/acs&quot;&gt;this page&lt;/a&gt; for up-to-date information.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6624222652861299593'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6624222652861299593'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/acs-version-11913-available.html' title='ACS 1.1.9.13 is replaced'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4418471456046162692</id><published>2026-05-27T05:00:00.004-05:00</published><updated>2026-05-27T05:00:00.118-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Calculating the power and square root of a number</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;There are times I need to calculate the dimensions of objects, and to do that I need to use things like &lt;i&gt;x&lt;/i&gt; squared, or the square root of &lt;i&gt;y&lt;/i&gt;. It all brings back memories of sitting in mathematics lessons back in high school, a very long time ago.&lt;/p&gt;

&lt;p&gt;It is simple in RPG, but I want to do it in SQL so that I can calculate the information I need in my SQL View.&lt;/p&gt;

&lt;p&gt;I thought it would be a good reminder to show how to calculate the square root and how to use exponentiation (&lt;i&gt;x&lt;sup&gt;y&lt;/sup&gt;&lt;/i&gt;, &lt;i&gt;x&lt;/i&gt; to the power of &lt;i&gt;y&lt;/i&gt;) in both RPG and SQL.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4418471456046162692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4418471456046162692'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4418471456046162692'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html' title='Calculating the power and square root of a number'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4873995830090633663</id><published>2026-05-20T05:00:00.005-05:00</published><updated>2026-05-20T05:00:00.124-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Determine the length of a string when using SQL</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;The title is not as descriptive as I would have liked, my original title was too long to appear reasonably at the top of this page. I am going to describe how you can determine the length of the string of characters within a column from a DDS file or DDL table using SQL. I have found this most useful when using it within a Select statement.&lt;/p&gt;

&lt;p&gt;This SQL function can be called by one of two names: &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt; or &lt;tt&gt;CHAR_LENGTH&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;There is also a related function, &lt;tt&gt;LENGTH&lt;/tt&gt;, that I will describe later in this post.&lt;/p&gt;

&lt;p&gt;As its name suggests, &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt; will return the length of a string expression. In the following example I am using the &lt;tt&gt;VALUES&lt;/tt&gt; SQL statement with &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt;:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  VALUES CHARACTER_LENGTH(&amp;#39;A             &amp;#39;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4873995830090633663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4873995830090633663'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4873995830090633663'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html' title='Determine the length of a string when using SQL'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2463818198936797259</id><published>2026-05-13T05:00:00.025-05:00</published><updated>2026-05-13T05:00:00.122-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Generating help text using an IBM i command</title><content type='html'>&lt;img align=&quot;right&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hBmN3klY-F-SO6l9o5yAdu0zn7zia1CHrSYjFEctO8ipQReRfMl4rO9aCTHax-5IylkR25dzOXccg3HXjKC-R_5ri6Cavo0k_WrJSqIRpqjREEUjoHF92aiKLEyY4ERiJFt7VaYlzj3L2wXMOt2VFhcckXQbOFgFPbH4X20rFGNGGIoNqOHVjzV2C7o/s200-rw/pgming.png&quot; width=&quot;200&quot;&gt;

&lt;p&gt;This is another post about something I did not know existed until a few days ago. I have been building some commands to help automate certain processes, and I thought it would be a good idea to create help text for the commands so that anyone using it could use it instead of asking me how to use the command.&lt;/p&gt;

&lt;p&gt;Help text for commands must be in the form of a panel group object, &lt;tt&gt;*PNLGRP&lt;/tt&gt;. The programming language used to create the contents of a panel group is User Interface Manager, &lt;abbr title=&quot;User Interface Manager&quot;&gt;UIM&lt;/abbr&gt;. Don&amp;#39;t worry if you have never used UIM, I think it is a simple language to understand.&lt;/p&gt;

&lt;p&gt;Several years ago I wrote a post about creating &lt;a href=&quot;/2017/02/creating-help-text-using-uim.html&quot; target=&quot;_blank&quot;&gt;help panel groups with UIM&lt;/a&gt;, therefore, if you want more information than I am going to mention here please refer to that post.&lt;/p&gt;

&lt;p&gt;I &amp;quot;stumbled&amp;quot; across the command &lt;tt&gt;GENCMDDOC&lt;/tt&gt;, Generate Command Documentation, which will create a template for my command that I can then add details to. I admit I have never heard of it before, and having used it I found it saved me a lot of time.&lt;/p&gt;

&lt;p&gt;First I need a command. I just randomly copied some parts of commands I had created earlier into one new command, &lt;tt&gt;TESTCMD&lt;/tt&gt;.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2463818198936797259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2463818198936797259'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2463818198936797259'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html' title='Generating help text using an IBM i command'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hBmN3klY-F-SO6l9o5yAdu0zn7zia1CHrSYjFEctO8ipQReRfMl4rO9aCTHax-5IylkR25dzOXccg3HXjKC-R_5ri6Cavo0k_WrJSqIRpqjREEUjoHF92aiKLEyY4ERiJFt7VaYlzj3L2wXMOt2VFhcckXQbOFgFPbH4X20rFGNGGIoNqOHVjzV2C7o/s72-c-rw/pgming.png" height="72" width="72"/><thr:total>2</thr:total></entry></feed>