<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
  <channel>
    <title>APEXBlogs.info</title>
    <link>http://www.apexblogs.info</link>
    <description>This is a feed of all Oracle Application Express (APEX) Blogs provided by APEX Evangelists.</description>
    <language>en-us</language>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/OracleApexBlogAggregator" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="oracleapexblogaggregator" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Specjalista Oracle APEX - płatny staż !</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18321</link>
      <description>&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;br&gt;
&lt;b&gt;Naszą ofertę kierujemy do osób, posiadających minimum podstawową wiedzę z zakresu Oracle Apex, traktujących swe zainteresowanie APEX-em jako ciekawą przygodę a nie ciężki obowiązek.&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Niezbędne umiejętności/cechy:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;ogólne zainteresowanie nowoczesnymi technologiami IT z naciskiem na technologie Internetowe i mobilne,&lt;/li&gt;
&lt;li&gt;umiejętność posługiwania się językiem angielskim na poziomie komunikatywnym,&lt;/li&gt;
&lt;li&gt;posługiwanie się SQL i PL/SQL,&lt;/li&gt;
&lt;li&gt;samodyscyplina oraz umiejętność pracy w zespole.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;b&gt;Mile widziane:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;umiejętność tworzenia projektów graficznych stron WWW,&lt;/li&gt;
&lt;li&gt;znajomość standardów HTML, CSS,&lt;/li&gt;
&lt;li&gt;umiejętność posługiwania się javascript, jQuery, Jasper Reports,&lt;/li&gt;
&lt;li&gt;znajomość administracji Oracle.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;b&gt;Co oferujemy:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;pracę przy realizacji projektów krajowych jak i zagranicznych opartych o technologię Oracle APEX,&lt;/li&gt;
&lt;li&gt;darmowe szkolenia z zakresu Oracle APEX&lt;/li&gt;
&lt;li&gt;rozwój pod opieką doświadczonych programistów&lt;/li&gt;
&lt;li&gt;świetną atmosferę pracy
możliwość pracy zdalnej (kandydat może być spoza Wrocławia),&lt;/li&gt;
&lt;li&gt;wynagrodzenie na start - 500 PLN miesięcznie.&lt;/li&gt;
&lt;li&gt;po przebyciu stażu możliwość otrzymania pracy na etacie
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;Jeżeli jesteś zainteresowany niniejszą ofertą to śmiało prześlij swoje CV na adres praca@dbe.pl.&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;Rozmowy z potencjalnymi kandydatami będziemy przeprowadzać zdalnie poprzez Skype.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/7531463720728239813-409072281678925377?l=apex.dbe.pl" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 28 May 2012 09:50:29</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/1709ebeb09a0a9262456076095029</guid>
    </item>
    <item>
      <title>Doctors...</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18301</link>
      <description>This recent &lt;a href="http://sethgodin.typepad.com/seths_blog/2012/05/emergency-room-doctors.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+typepad%2Fsethsmainblog+%28Seth%27s+Blog%29"&gt;blog post by Seth Godin&lt;/a&gt; reminded me a lot of my introduction to Effective Oracle by Design of a few years ago. What was true then is still so true today...&lt;br&gt;&lt;br&gt;Here is an excerpt from my book that mirrors what he just wrote:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;I will use yet another analogy to describe how this book will present information.  Pretend for a moment that the developer is instead a medical doctor and the application is the patient.  There are many types of MD’s:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;ul style="margin-top:0in"&gt;&lt;li&gt;&lt;span&gt;The      emergency room (ER) doctor&lt;/span&gt;. They do “triage” – separating      the hopeless from the ones that can be helped.  Performing quick fixes to keep patients      alive for as long as possible.  They      strive for short term band-aids to fix up the patient.  They will take a patient with a heart      attack induced by smoking, bad diet and no exercise and get them      stabilized.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;ul style="margin-top:0in"&gt;&lt;li&gt;&lt;span&gt;The      operating room (OR) doctor.&lt;/span&gt;       They get the patient after the ER doctor has triaged them and      patched them up.  They strive for      long term fixes to keep the patient not only alive but as fully      functioning as possible.  They      perform the by-pass operation on that heart attack attempting to clear the      arteries.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;ul style="margin-top:0in"&gt;&lt;li&gt;&lt;span&gt;The      physical therapist (PT).&lt;/span&gt;       They get the patient after the operating room doctor is finished      and begin a long and painful (not to mention expensive) process of      rehabilitation.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;ul style="margin-top:0in"&gt;&lt;li&gt;&lt;span&gt;The      preventative medicine doctor.&lt;/span&gt;  They strive to avoid the above three      doctors at all costs.  They counsel      the patient to quit smoking, eat a healthy diet, and exercise – developing      a phased plan to get them in shape.       If they do their job right – with the exception of unfortunate      accidents (like a car accident), the patient will never see the ER, OR or      PT doctors.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now, the world needs all types of doctors – accidents do happen after all.  But one of the most important types of doctors is that last one, the preventative medicine doctor.  The one that tries hard to avoid having their patient need the other three.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It is my belief (experience) that most people and books approach tuning using the mindset of the first three doctor types above.  They are in support of the &lt;span&gt;hero developer&lt;/span&gt;; e.g. the ER or OR doctor.  Perhaps that is partially due to my observation that pre-emptive good design and implementation is mostly a thankless exercise.  These developers seem to get all of the fame as they snatch the patient from the grasp of death (save the system by doing something miraculous).  They get called in at the last moment; work horribly hard for an extended period of time trying to keep the patient alive (and get paid handsomely as well).  The physical therapists are the unlucky souls that get the system after the ER/OR doctor has patched it up.  They are the ones responsible for keeping this system going.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I feel I am well equipped to speak from that perspective.  I am in fact one of those “heroes”.  I am called in to “lay hands on” systems and make them better.  I could write that book, I’ve been told I should write that book – but I won’t.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What is missing is the comprehensive approach that includes the preventative medicine doctor training.  There are some out there – my favorites being Guy Harrison’s developer book, as well as Jonathan Lewis’s DBA book.  These books, including my own “Expert One on One Oracle” work to remove the need for the hero.  Remember – firefighters are heroes when they do their job, we all just hope &lt;b&gt;we&lt;/b&gt;never need them personally!&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/11839365-921749739312543795?l=tkyte.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Sun, 27 May 2012 15:38:25</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/bb8ccebd2f1d8bf22456075153825</guid>
    </item>
    <item>
      <title>Join me at the DOAG Development Conference in Bonn (14.06.2012)</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18283</link>
      <description>Typically, the &lt;a href="http://www.doag.org/en/" rel="nofollow"&gt;DOAG e.V.&lt;/a&gt; is hosting its yearly conference in Nuremberg. The DOAG is the German Oracle User Group and the DOAG conference is the premier event in Germany focusing on everything Oracle. There you will find all kinds of presentations for developers, DBAs, management and so forth.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://www.doag.org/typo3temp/pics/1a29b4d840.jpg" style="clear:right;float:right;margin-bottom:1em;margin-left:1em"&gt;&lt;img alt="" border="0" height="200" src="http://www.doag.org/typo3temp/pics/1a29b4d840.jpg" title="" width="200"&gt;&lt;/a&gt;&lt;/div&gt;For the first time though, the DOAG will host a smaller conference in Bonn, solely for Oracle developers. The conference covers the following four tracks: "PL/SQL and APEX",   "Java and Open Source", "Forms, Reports, ADF, BI-Publisher", "BPM and  Softwarearchitecture".&lt;br&gt;Find the complete &lt;a href="http://mydoag.doag.org/formes/servlet/DocNavi?action=getFile&amp;amp;did=3359605&amp;amp;file=2012-Dev_Programm.pdf" rel="nofollow"&gt;conference program as PDF&lt;/a&gt; online.&lt;br&gt;&lt;br&gt;You can get more information on the &lt;a href="http://development.doag.org/"&gt;conference website&lt;/a&gt;, you can also register online.  &lt;br&gt;&lt;br&gt;If you like you can join me there, I will be presenting on &amp;quot;from Oracle Reports to Jasper Reports&amp;quot;:  &lt;br&gt;&lt;blockquote&gt;&lt;i&gt;Many customers are moving away from Oracle Forms to other alternatives.  Oracle APEX is an especially interesting option because it leverages  existing Oracle database skills (SQL and PL/SQL) nicely. But what about  your existing Oracle Reports? This presentation will cover the open  source solution, JasperReports, as a viable alternative. The session  will cover the typical use cases and design patterns used when building  reports in Oracle Reports and how to implement them using JasperReports.  You will learn how to get started with JasperReports  and how to integrate that functionality into your APEX applications.&lt;/i&gt;&lt;/blockquote&gt;Cheers,&lt;br&gt;~Dietmar.&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/20788401-7930888231183866204?l=daust.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Sat, 26 May 2012 15:53:25</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/3cea217da4fb83522456074155325</guid>
    </item>
    <item>
      <title>Presenting at ODTUG KScope in June</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18282</link>
      <description>This year from the 24th to the 28th of June I will be attending the &lt;a href="http://kscope12.com/"&gt;ODTUG KScope&lt;/a&gt; conference in San Antonio, Texas. &lt;br&gt;&lt;br&gt;Here is what ODTUG says about the conference:&lt;br&gt;&lt;blockquote&gt;&lt;i&gt;ODTUG Kscope12 is the place to be for the Oracle technical community in  2012. If you are a developer, architect, technical lead, or database  administrator who works with Application Express, Business Intelligence,  Oracle EPM; including Hyperion products, Essbase, Planning; Database  Development or Fusion Middleware, Kscope12 is where you should be. It’s  hard to find a conference that’s big enough to attract world renowned  speakers and small enough to get the chance to share knowledge. Kscope12  is that conference.&lt;/i&gt;&lt;/blockquote&gt;I could not agree more. It is really fun to meet up with all my friends from the Oracle APEX community, learn about the new features of the upcoming Oracle APEX release firsthand from the developers and get in touch with sooo many excellent developers from around the world. This is definitely the most important conference for any Oracle developer to attend.&lt;br&gt;&lt;br&gt;This year I will have two presentations:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://kscope12.com/component/seminar/seminarslist#Taming%20of%20the%20Shrew%20-%20Documenting%20an%20APEX%20Application"&gt;Taming of the Shrew - Documenting an APEX Application&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://kscope12.com/component/seminar/seminarslist#Oracle%20Reports%20to%20JasperReports"&gt;Oracle Reports to JasperReports&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;Cheers and looking forward to seeing you there,&lt;br&gt;~Dietmar.&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/20788401-8766299269791850254?l=daust.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Sat, 26 May 2012 12:14:34</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/d8f7236cdd466d852456074121434</guid>
    </item>
    <item>
      <title>MS Exchange API for PL/SQL</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18281</link>
      <description>As mentioned in &lt;a href="http://ora-00001.blogspot.com/2012/05/select-from-inbox.html"&gt;my earlier post&lt;/a&gt;, I've been working on a PL/SQL wrapper for the Microsoft Exchange Web Services (EWS) API. The code is now ready for an initial release!&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://4.bp.blogspot.com/-twKuP-wzUIc/T8CecpbC6BI/AAAAAAAAAbU/RGYKLuX-nTY/s1600/SNAG-1405.jpg" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" height="302" src="http://4.bp.blogspot.com/-twKuP-wzUIc/T8CecpbC6BI/AAAAAAAAAbU/RGYKLuX-nTY/s320/SNAG-1405.jpg" width="320"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;h3&gt;Features&lt;/h3&gt;&lt;br&gt;Using this pure PL/SQL package, you will be able not just to search for and retrieve emails and download attachments, but you will also be able to create emails and upload attachments to existing emails. You can move emails between folders, and delete emails. You can read and create calendar items. You can get the email addresses of the people in a distribution (mailing) list, and more.&lt;br&gt;&lt;br&gt;&lt;h3&gt;Prerequisites&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;You need access to an Exchange server, obviously! I've done my testing against an Exchange 2010 server, but should also work against Exchange 2007.&lt;/li&gt;&lt;li&gt;If the Exchange server uses HTTPS, then you need to add the server's SSL certificate to an Oracle Wallet. See &lt;a href="http://eternal-donut.blogspot.com.es/2008/07/tip-5-using-utlhttp-and-ssl.html"&gt;this page&lt;/a&gt; for step-by-step instructions.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;h3&gt;Usage&lt;/h3&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://2.bp.blogspot.com/-jiK88FYLcug/T8CgYOzN-cI/AAAAAAAAAbc/2KrFjWGwr1Q/s1600/SNAG-1361.jpg" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" height="282" src="http://2.bp.blogspot.com/-jiK88FYLcug/T8CgYOzN-cI/AAAAAAAAAbc/2KrFjWGwr1Q/s400/SNAG-1361.jpg" width="400"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;The API should be fairly self-explanatory. The only thing you need to do is to call the INIT procedure at least once per session (but remember that in Apex, each page view is a new session, so place the initialization code in a before-header process or a page 0 process).&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  ms_ews_util_pkg.&lt;/span&gt;&lt;b style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;init&lt;/b&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;('https://thycompany.com/ews/Exchange.asmx', 'domain\user.name', 'your_password', 'file:c:\path\to\Oracle\wallet\folder\on\db\server', 'wallet_password');&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;Note also that there are two varieties of most functions: One pipelined function intended for use from plain SQL, and a twin function suffixed with "AS_LIST" that returns a list intended for use with PL/SQL code.&lt;br&gt;&lt;br&gt;&lt;h3&gt;Code Examples&lt;/h3&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- resolve names&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_names ms_ews_util_pkg.t_resolution_list;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_names := ms_ews_util_pkg.resolve_names_as_list(&amp;#39;john&amp;#39;);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  for i in 1 .. l_names.count loop&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;    debug_pkg.printf(&amp;#39;name %1, name = %2, email = %3&amp;#39;, i, l_names(i).mailbox.name, l_names(i).mailbox.email_address);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  end loop;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- resolve names (via SQL)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.resolve_names ('john'))&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- expand distribution list&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_names ms_ews_util_pkg.t_dl_expansion_list;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_names := ms_ews_util_pkg.expand_public_dl_as_list(&amp;#39;some_mailing_list@your.company&amp;#39;);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  for i in 1 .. l_names.count loop&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;    debug_pkg.printf(&amp;#39;name %1, name = %2, email = %3&amp;#39;, i, l_names(i).name, l_names(i).email_address);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  end loop;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get folder&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_folder ms_ews_util_pkg.t_folder;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_folder := ms_ews_util_pkg.get_folder (ms_ews_util_pkg.g_folder_id_inbox);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;folder id = %1, display name = %2&amp;#39;, l_folder.folder_id, l_folder.display_name);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;total count = %1&amp;#39;, l_folder.total_count);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;child folder count = %1&amp;#39;, l_folder.child_folder_count);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;unread count = %1&amp;#39;, l_folder.unread_count);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- find up to 3 items in specified folder&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_items ms_ews_util_pkg.t_item_list;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_items := ms_ews_util_pkg.find_items_as_list(&amp;#39;inbox&amp;#39;, p_max_rows =&amp;gt; 3);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  for i in 1 .. l_items.count loop&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;    debug_pkg.printf(&amp;#39;item %1, subject = %2&amp;#39;, i, l_items(i).subject);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  end loop;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get items in predefined folder&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.find_folders('inbox'))&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get items in predefined folder, and search subject&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.find_items('inbox', 'the search term'))&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get items in user-defined folder&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.find_items('the_folder_id'))&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get items in user-defined folder, by name&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.find_items(&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;             ms_ews_util_pkg.get_folder_id_by_name(&amp;#39;Some Folder Name&amp;#39;, &amp;#39;inbox&amp;#39;)&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;            )&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;          )&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get item (email message)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item ms_ews_util_pkg.t_item;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item := ms_ews_util_pkg.get_item (&amp;#39;the_item_id&amp;#39;, p_include_mime_content =&amp;gt; true);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;item %1, subject = %2&amp;#39;, l_item.item_id, l_item.subject);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;body = %1&amp;#39;, substr(l_item.body,1,2000));&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;length of MIME content = %1&amp;#39;, length(l_item.mime_content));&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get item (calendar item)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item ms_ews_util_pkg.t_item;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item := ms_ews_util_pkg.get_item (&amp;#39;the_item_id&amp;#39;, p_body_type =&amp;gt; &amp;#39;Text&amp;#39;, p_include_mime_content =&amp;gt; true);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;item %1, class = %2, subject = %3&amp;#39;, l_item.item_id, l_item.item_class, l_item.subject);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;body = %1&amp;#39;, substr(l_item.body,1,2000));&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;length of MIME content = %1&amp;#39;, length(l_item.mime_content));&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;start date = %1, location = %2, organizer = %3&amp;#39;, l_item.start_date, l_item.location, l_item.organizer_mailbox_name);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- create calendar item&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item ms_ews_util_pkg.t_item;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.subject := &amp;#39;Appointment added via PL/SQL&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.body := &amp;#39;Some text here...&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.start_date := sysdate + 1;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.end_date := sysdate + 2;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.item_id := ms_ews_util_pkg.create_calendar_item (l_item);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;created item with id = %1&amp;#39;, l_item.item_id);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- create task item&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item ms_ews_util_pkg.t_item;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.subject := &amp;#39;Task added via PL/SQL&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.body := &amp;#39;Some text here...&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.due_date := sysdate + 1;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.status := ms_ews_util_pkg.g_task_status_in_progress;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.item_id := ms_ews_util_pkg.create_task_item (l_item);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;created item with id = %1&amp;#39;, l_item.item_id);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- create message item&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item ms_ews_util_pkg.t_item;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.subject := &amp;#39;Message added via PL/SQL&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.body := &amp;#39;Some text here...&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item.item_id := ms_ews_util_pkg.create_message_item (l_item, p_to_recipients =&amp;gt; t_str_array(&amp;#39;recipient1@some.company&amp;#39;, &amp;#39;recipient2@another.company&amp;#39;));&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;created item with id = %1&amp;#39;, l_item.item_id);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- update item&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- item id and change key can be retrieved with following query:&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- select item_id, change_key, subject, is_read from table(ms_ews_util_pkg.find_items('inbox'))&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_item_id varchar2(2000) := &amp;#39;the_item_id&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_change_key varchar2(2000) := &amp;#39;the_change_key&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  ms_ews_util_pkg.update_item_is_read (l_item_id, l_change_key, p_is_read =&amp;gt; true);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- get list of attachments&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from table(ms_ews_util_pkg.get_file_attachments('the_item_id'))&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- download and save 1 attachment&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment ms_ews_util_pkg.t_file_attachment;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment := ms_ews_util_pkg.get_file_attachment (&amp;#39;the_attachment_id&amp;#39;);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  file_util_pkg.save_blob_to_file(&amp;#39;DEVTEST_TEMP_DIR&amp;#39;, l_attachment.name, l_attachment.content);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;-- create attachment (attach file to existing item/email)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;declare&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment ms_ews_util_pkg.t_file_attachment;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;begin&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.debug_on;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment.item_id := &amp;#39;the_item_id&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment.name := &amp;#39;Attachment added via PL/SQL&amp;#39;;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment.content := file_util_pkg.get_blob_from_file(&amp;#39;DEVTEST_TEMP_DIR&amp;#39;, &amp;#39;some_file_such_as_a_nice_picture.jpg&amp;#39;);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  l_attachment.attachment_id := ms_ews_util_pkg.create_file_attachment (l_attachment);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  debug_pkg.printf(&amp;#39;created attachment with id = %1&amp;#39;, l_attachment.attachment_id);&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;end;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;h3&gt;Download&lt;/h3&gt;&lt;br&gt;The MS_EWS_UTIL_PKG package is included in the &lt;a href="http://code.google.com/p/plsql-utils/"&gt;Alexandria Utility Library for PL/SQL&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;h3&gt;Known Issues&lt;/h3&gt;&lt;br&gt;The CREATE_ITEM functions don't seem to return the ID of the created item (which do get created in Exchange). I think the issue is with the XML parsing of the returned results; I will look into this later.&lt;br&gt;&lt;br&gt;Please report any bugs found via the &lt;a href="http://code.google.com/p/plsql-utils/issues/list"&gt;issue list&lt;/a&gt;.&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/5215551487816981140-5299421360022927392?l=ora-00001.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Sat, 26 May 2012 09:33:22</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/a3c21a28cc40a3122456074093322</guid>
    </item>
    <item>
      <title>Flashback Friday: Kscope 11 Interview with Jeff Erickson</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18264</link>
      <description>&lt;p&gt;&lt;a href="https://odtug.files.wordpress.com/2012/05/jeff-and-ed1.jpg"&gt;&lt;img title="jeff-and-ed" src="https://odtug.files.wordpress.com/2012/05/jeff-and-ed1.jpg" alt="" width="300" height="179"&gt;&lt;/a&gt;Jeff Erickson is a Senior Editor with Oracle Publishing and he was kind enough to let us interview him at Kscope11.  Earlier in the week Jeff attended Community Service Day where he not only interviewed&lt;em&gt; &lt;/em&gt;Edward Roske he chipped in and helped up organize and clean up the Boys and Girls Club of Long Beach.&lt;/p&gt;
&lt;p&gt;Check out his interview with us&lt;br&gt;
&lt;span style="text-align:center;display:block"&gt;&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/AiIBBicn9c0?version=3&amp;amp;rel=1&amp;amp;fs=1&amp;amp;showsearch=0&amp;amp;showinfo=1&amp;amp;iv_load_policy=1&amp;amp;wmode=transparent" frameborder="0"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;br&gt;
Here’s his article: &lt;a href="http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12upclose-1385122.html"&gt;Developing a Better Community&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 25 May 2012 17:08:09</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/7b31caecd0fae9632456073170809</guid>
    </item>
    <item>
      <title>A friend in need: Flashback Query</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18263</link>
      <description>&lt;br&gt;&lt;blockquote&gt;&lt;i&gt;"It is sayd, that at the nede the frende is knowen."&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;- William Caxton: "&lt;a href="http://en.wikipedia.org/wiki/The_Right_Pleasant_and_Goodly_Historie_of_the_Foure_Sonnes_of_Aymon"&gt;Sonnes of Aymon&lt;/a&gt;" (1489)&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;"I say, that when you screw up, Flashback Query is a friend indeed!"&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;- Morten Braten: "SQLs of Oracle" (2012)&lt;/blockquote&gt;&lt;br&gt;The &lt;a href="http://www.oracle-base.com/articles/10g/flashback-10g.php"&gt;Flashback Query&lt;/a&gt; feature of Oracle (10g) can be really helpful when you run that UPDATE or DELETE statement and then, &lt;i&gt;after&lt;/i&gt; the COMMIT, you discover that you made a mistake!&lt;br&gt;&lt;br&gt;Wouldn't it be nice to be able to look back and see what the data looked like before you messed things up? With a Flashback Query you can do just that:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:#274e13;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;-- see the data as it was 10 minutes ago&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select *&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from emp&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;as of timestamp systimestamp - interval '10' minute&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;where empno = 7369&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Or you can see a history of changes:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:#38761d;font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;-- history of all changes last 20 minutes&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;select empno, ename, sal, job,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  versions_operation,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  versions_starttime,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  versions_endtime,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  versions_xid&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;from emp&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;b&gt;versions between timestamp systimestamp - interval '20' minute and systimestamp&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;where empno = 7369&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;order by versions_endtime nulls last&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I've found this useful several times lately, so I'm adding it to the blog as a quick reminder, as I always struggle to remember that funky interval syntax thingy.&lt;br&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/5215551487816981140-1196208787641354986?l=ora-00001.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 25 May 2012 14:45:50</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/9a089350c781c2b92456073144550</guid>
    </item>
    <item>
      <title>Generic RTF Documents - Part 5 - The End</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18262</link>
      <description> &lt;br&gt;&lt;div&gt;As promised, I’ve added some validation (more could be added, but there always could, and this blog is more geared to enable the process, than production-ise it). I’ve also revisited an area of the code I wasn’t happy with, and removed the kludge (Actually, I think it was my problem, in the first place with bad code, but at least I admit it&lt;span style="font-family:Wingdings"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I have uploaded the example onto apex.com – &lt;a href="http://apex.oracle.com/pls/apex/f?p=16542:LOGIN"&gt;link&lt;/a&gt; – please don’t amend the existing samples, but create your own as you see fit. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Code can be obtained &lt;a href="http://my-floridavilla.com/apex/Apex_Example.zip"&gt;here&lt;/a&gt; – the zip file contains the apex application, schema objects creation and the package spec/body.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So, what extra did I add and why ?.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;First, I went back to the screen that I used to record the fields associated with the standard letter. I added some validation to ensure that the only “fields” that began with “FIELD”,”SINGLE” or “TABLE”, and for the first two, had 3 digits – the easiest way of doing this, is via a reg-exp validation to the field_name column as follows.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;CASE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;SUBSTR(:&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;1&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;1&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'F'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;NOT&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;REGEXP_LIKE(:&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'(^FIELD\d{3}$)'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FALSE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;ELSE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;TRUE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'S'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;NOT&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;REGEXP_LIKE(:&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'(^SINGLE\d{3}$)'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FALSE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;ELSE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;TRUE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'T'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;NOT&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;REGEXP_LIKE(:&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'(^TABLE*)'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FALSE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;ELSE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;TRUE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;ELSE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;RETURN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FALSE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;CASE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The reason for insisting on 3 digits for the field, is so that when we come to replace, we replace the correct entry, otherwise, FIELD1 would replace FIELD10 – FIELD19 and all the FIELD1nn entries – obvious now, but not when I started.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next, I ensured that when I read in the template, any field had to exist in the list defined for the standard letter. This meant adding a section of code in the EXTRACT_VARIABLES procedure, along with raising an error and aborting the template load. The following code was inserted just after extracting the field_name and before inserting the record into the TEMPLATE_SUB_COLUMNS table.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;SELECT&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;NVL(COUNT(&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;S&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;.&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NUMBER&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;),&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;0&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;           &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;INTO&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;L_COUNT&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;           &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FROM&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:olive;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;STANDARD_LETTER_FIELDS&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; S&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:olive;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;TEMPLATE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;T&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHERE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;T.&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;TEMPLATE_ID &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;P_TEMPLATE_ID&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;AND&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;T.&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;LETTER_ID &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; S&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;.&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;LETTER_ID&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;AND&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; S&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;.&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;FIELD_NAME &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;L_FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;L_COUNT &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;0&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US" style="background:white;color:green;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;--&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US" style="background:white;color:green;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;-- The retrieved Field is not listed as being a field available for that report / letter&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US" style="background:white;color:green;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;--&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;RAISE_APPLICATION_ERROR&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;(-&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;20000&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'Field name '&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;||&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;L_FIELD_NAME &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;||&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;' has not been defined in the template. '&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;);&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;IF;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;And then, again just before the insert, I ensured that the “SUBSTITUTION_TYPE” field is correctly initialised by adding the following code&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;CASE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;SUBSTR(&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;L_FIELD_NAME&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;1&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;,&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:maroon;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;1&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;)&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'F'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;               &lt;/span&gt;L_SUBSTITUTION_TYPE&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;:=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'FIELD'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;WHEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'S'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;THEN&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;               &lt;/span&gt;L_SUBSTITUTION_TYPE&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;:=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'SINGLE'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;ELSE&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;               &lt;/span&gt;L_SUBSTITUTION_TYPE&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;:=&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:red;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;'TABLE'&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;END&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:blue;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;CASE;&lt;/span&gt;&lt;span lang="EN-US" style="background:white;color:black;font-family:&amp;quot;MS Shell Dlg 2&amp;quot;,&amp;quot;sans-serif&amp;quot;;font-size:10.0pt"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm;text-autospace:none"&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Due to the fact that the field has already been validated against the list allowed for the standard letter (which in turn validated that only fields of type “FIELD”,”SINGLE” and “TABLE” are entered), I can get away with the “else”.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To get the above code to work however, I had to revisit the UPLOAD_RTF procedure. In the blog (part 1) I mentioned that I had to work around a deficiency and did so by the use of a “kludge”, well, I’m here to eat my own words and say that it was due to my coding. Once the code was corrected, it worked correctly, and the dynamic actions on the button could be removed and all the processing put where it should have been in the first place – that is, in the submit processing. In doing so, raising the error was correctly trapped and any transactional work rolled back.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The next issue I encountered wasn’t with APEX, it was our beloved Microsoft Word.&lt;span&gt;  &lt;/span&gt;For some unfathomable reason, when creating layouts with aligned text, the first couple of fields are ok, then it starts to insert all sort of garbage rtf codes at random, often within the “field” name, thus blowing the guts of this whole blog. Needless to say, OpenOffice doesn’t have this problem, and I could continue to blog&lt;span style="font-family:Wingdings"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I hope the journey has been of interest and inspired you. There is no doubt a lot more that could be done to extend the RTF functionality, and if anyone does, I would be interested to see what you have done.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/5378851082892079760-1883308827139881488?l=rchallis.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 25 May 2012 14:33:08</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/706b6c06d07b70e22456073143308</guid>
    </item>
    <item>
      <title>APEX IR - Date Filter usage like String columns</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18265</link>
      <description>If you want to filter date values like this:&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://4.bp.blogspot.com/-6qvQFqJzTKU/T749HOzUA8I/AAAAAAAAAek/z5fOWXry61E/s1600/date_filter.png" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-6qvQFqJzTKU/T749HOzUA8I/AAAAAAAAAek/z5fOWXry61E/s1600/date_filter.png"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;Then extend the code to your date columns (inside the region source) like this:&lt;br&gt;  My date column name is: IMPORT_DATE&lt;br&gt;  select&lt;br&gt;  ... &lt;br&gt;  decode(IMPORT_DATE,null,null,&amp;#39;&amp;lt;!-- &amp;#39; || to_char ( IMPORT_DATE, &amp;#39;yyyymmdd&amp;#39; ) || &amp;#39; --&amp;gt;&amp;#39; || IMPORT_DATE) as IMPORT_DATE&lt;br&gt;  from&lt;br&gt;  ...&lt;br&gt;&lt;br&gt;For more information take a look into this forum thread: &lt;br&gt;&lt;a href="https://forums.oracle.com/forums/thread.jspa?threadID=2346579&amp;amp;start=15&amp;amp;tstart=0"&gt;https://forums.oracle.com/forums/thread.jspa?threadID=2346579&amp;amp;start=15&amp;amp;tstart=0&lt;/a&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6481483192141562388-1171627598413790083?l=www.apex-at-work.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 25 May 2012 13:50:57</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/d9c1168efbe9b5072456073135057</guid>
    </item>
    <item>
      <title>Relacja ze szkoleń</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18261</link>
      <description>Ostatnia tura szkoleń majowych zbliża się ku końcowi jeszcze tylko kilka godzin i się pożegnamy z ostatnią grupą. Szkolenia realizowaliśmy nieco w innej formie niż to miało miejsce do tej pory. Skupiliśmy się bardziej na konkretnych przypadkach niż nad ciągłością scenariusza.  Podręczniki w 60% były zmodyfikowane i dostosowane do najnowszej wersji Oracle APEX 4.1. Mam nadzieję że szkolenie spełniło oczekiwania uczestników i będzie zachętą do szkoleń z wyższego poziomu : )&lt;br&gt;
&lt;br&gt;
I jak zawsze załączam zdjęcia.&lt;br&gt;
&lt;br&gt;
&lt;div style="clear:both;text-align:center"&gt;
&lt;a href="http://2.bp.blogspot.com/-yrd7NHemNO0/T79Uzx0wG1I/AAAAAAAAEPw/WwTFoqfMxZw/s1600/IMAG0157.jpg" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/-yrd7NHemNO0/T79Uzx0wG1I/AAAAAAAAEPw/WwTFoqfMxZw/s320/IMAG0157.jpg" width="320"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div style="clear:both;text-align:center"&gt;
&lt;a href="http://2.bp.blogspot.com/-RH5wnxomViM/T79U5T33pUI/AAAAAAAAEP4/nVFhPo3acaY/s1600/Bez+nazwy.jpg" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-RH5wnxomViM/T79U5T33pUI/AAAAAAAAEP4/nVFhPo3acaY/s320/Bez+nazwy.jpg" width="320"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
Wszyscy, którzy nie zdołali wziąć udziału w naszych szkoleniach a chcieli by w przyszłości w nich uczestniczyć, zachęcam do śledzenia bloga. Jak tylko ustalimy następny termin poinformujemy o tym na stronach bloga (nie wcześniej niż za 2 miesiące).&lt;br&gt;
&lt;br&gt;
&lt;br&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/7531463720728239813-5330935954355006573?l=apex.dbe.pl" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 25 May 2012 09:53:11</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/001209cb05fb40552456073095311</guid>
    </item>
    <item>
      <title>Mike’s Blogging About Cameron Lackpour’s Blog</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18242</link>
      <description>&lt;p&gt;&lt;a href="http://odtug.files.wordpress.com/2012/05/cameron.jpg"&gt;&lt;img title="Cameron&amp;#39;s Blog for Essbase Hackers" src="http://odtug.files.wordpress.com/2012/05/cameron.jpg?w=542&amp;amp;h=289" alt="Cameron&amp;#39;s Blog for Essbase Hackers" width="542" height="289"&gt;&lt;/a&gt;My good friend, fellow ODTUG Board Member, and Oracle ACE &lt;a href="http://apex.oracle.com/pls/otn/f?p=19297:4:1234777104002301::NO:4:P4_ID:3040"&gt;Cameron Lackpour&lt;/a&gt; is quite prolific when it comes to writing (anyone who writes more than I do must be prolific, right?). Well, this week he is going slightly overboard, but for good reasons. &lt;a href="http://kscope12.com/"&gt;Kscope12&lt;/a&gt; is exactly ONE MONTH away today. Cameron has put a blog post up each and every day this week highlighting a session or a bunch of presentations that he thinks that you might be interested in. While Cameron talks mainly about the EPM space, he does have some highlights that go outside of the EPM space. I always try to catch up with Cameron’s posts, even though I’m not in the EPM space, because he is a great writer with a very unique sense of humor. He is also very thorough and informative!&lt;/p&gt;
&lt;p&gt;So, here are the links to each day’s posts on Cameron’s blog:&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://camerons-blog-for-essbase-hackers.blogspot.com/2012/05/kscope12-session-highlight-1.html"&gt;Kscope12 session highlight No. 1&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href="http://camerons-blog-for-essbase-hackers.blogspot.com/2012/05/kscope12-session-highlight-no-2.html"&gt;KScope12 session highlight No. 2&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href="http://camerons-blog-for-essbase-hackers.blogspot.com/2012/05/kscope12-session-highlight-no-3.html"&gt;KScope12 session highlight No. 3&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href="http://camerons-blog-for-essbase-hackers.blogspot.com/2012/05/kscope12-session-highlight-no-4.html"&gt;KScope12 session highlight No. 4&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Extra credit and brownie points to the first reader of these posts that spots the other ODTUG Board Member’s presentation in these four postings of Cameron’s. Leave me a comment in my blog when you find it.&lt;/p&gt;
&lt;p&gt;If you haven’t registered yet for &lt;a href="http://kscope12.com/"&gt;Kscope12&lt;/a&gt;, click the link and click on the registration from the Kscope12 home page. You have until June 9 to save $300.00 off of our standard registration rate. Tell them that you heard about it on the ODTUG Blog!&lt;/p&gt;
&lt;br&gt;  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/odtug.wordpress.com/1909/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/odtug.wordpress.com/1909/"&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=odtug.wordpress.com&amp;amp;blog=6317772&amp;amp;post=1909&amp;amp;subd=odtug&amp;amp;ref=&amp;amp;feed=1" width="1" height="1"&gt;</description>
      <pubDate>Thu, 24 May 2012 16:39:25</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/856fcf81e07578172456072163925</guid>
    </item>
    <item>
      <title>Turning off dynamic listener registration on non-RAC systems to protect against “Oracle TNS Listener Poison Attack”</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18241</link>
      <description>&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Environment&lt;/span&gt;: Oracle database 11.2.0.3 64-bit, Oracle Linux 6.2 64-bit&lt;/p&gt;
&lt;p&gt;Oracle recently released a security alert (CVE-2012-1675) where they warn against a possible “Oracle TNS Listener Poison Attack”. There is no real fix, but there are a number of workarounds that you can use to protect your listeners against unauthorised hijacking.&lt;/p&gt;
&lt;p&gt;One of the workarounds involves turning off dynamic registration of database instances by the listener service. However, this workaround can only be used for stand-alone, non-RAC installations. For RAC, you can implement secure transports, which are explained in My Oracle Support document 1453883.1 (if you have access to Oracle support).&lt;/p&gt;
&lt;p&gt;Dynamic registration is by default turned on in Oracle 11g. To turn it off, there are two things you need to modify in your &lt;em&gt;$ORACLE_HOME/network/listener.ora&lt;/em&gt; file:&lt;/p&gt;
&lt;p&gt;First, you need to add a description for all the database instances that the listener will handle. If you fail to do this, any clients trying to connect will receive “&lt;strong&gt;ORA-12154: TNS:could not resolve the connect identifier specified&lt;/strong&gt;” errors after you turned off the dynamic registration.&lt;/p&gt;
&lt;p&gt;This is an example for my instance “oratst.mydomain.com”:&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = oratst.mydomain.com)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = oratst)
    )
  )
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Note&lt;/span&gt;: the GLOBAL_DBNAME and SID_NAME can be found by checking the Oracle initialization parameters db_name, db_domain and instance_name.&lt;/p&gt;
&lt;p&gt;Next, to turn off dynamic registration, you need to add the following line to the &lt;em&gt;listener.ora&lt;/em&gt; file:&lt;br&gt;
&lt;pre&gt;
DYNAMIC_REGISTRATION_LISTENER = OFF
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This is how my full &lt;em&gt;listener.ora&lt;/em&gt; file now looks like:&lt;br&gt;
&lt;pre&gt;
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-tst.mydomain.com)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = oratst.mydomain.com)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = oratst)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

# needed to solve a conflict with the ONS service installed in the OHS home
# see metalink note 284602.1
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER = OFF

DYNAMIC_REGISTRATION_LISTENER = OFF
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;After this, use the listener control utility (lsnrctl) to reload your listener’s configuration, and check the status of the services and the dynamic registration:&lt;br&gt;
&lt;pre&gt;
&amp;gt;lsnrctl

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 24-MAY-2012 13:45:49

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Welcome to LSNRCTL, type &amp;quot;help&amp;quot; for information.

LSNRCTL&amp;gt; reload
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-tst.mydomain.com)(PORT=1521)))
The command completed successfully
LSNRCTL&amp;gt; services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-tst.mydomain.com)(PORT=1521)))
Services Summary...
Service &amp;quot;oratst.mydomain.com&amp;quot; has 1 instance(s).
  Instance &amp;quot;oratst&amp;quot;, status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      &amp;quot;DEDICATED&amp;quot; established:0 refused:0
         LOCAL SERVER
The command completed successfully
LSNRCTL&amp;gt; show dynamic_registration
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-tst.mydomain.com)(PORT=1521)))
LISTENER parameter &amp;quot;dynamic_registration&amp;quot; set to OFF
The command completed successfully
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Note&lt;/span&gt;: the status “UNKNOWN” is normal when you are not using dynamic registration.&lt;/p&gt;
&lt;p&gt;Finally, check if you can still connect to the database using a remote client!&lt;/p&gt;
&lt;p&gt;HTH,&lt;br&gt;
Matthias&lt;/p&gt;
&lt;br&gt;  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matthiashoys.wordpress.com/202/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matthiashoys.wordpress.com/202/"&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matthiashoys.wordpress.com&amp;amp;blog=33157223&amp;amp;post=202&amp;amp;subd=matthiashoys&amp;amp;ref=&amp;amp;feed=1" width="1" height="1"&gt;</description>
      <pubDate>Thu, 24 May 2012 12:09:28</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/8783e1b8327e501e2456072120928</guid>
    </item>
    <item>
      <title>When is a foreign key not a foreign key...</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18221</link>
      <description>I learn or relearn something new every day about Oracle.  Just about every day really!&lt;br&gt;&lt;br&gt;Last week I was in Belgrade Serbia delivering a seminar and an attendee reminded me of something I knew once but had totally forgotten about.  It had to do with foreign keys and the dreaded NULL value.&lt;br&gt;&lt;br&gt;Many of you might think the following to be not possible, we'll start with the tables:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; create table p&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  2  ( x int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  3    y int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  4    z int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  5    constraint p_pk primary key(x,y)&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  6  )&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  7  /&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;Table created.&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; create table c&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  2  ( x int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  3    y int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  4    z int,&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  5    constraint c_fk_p foreign key (x,y) references p(x,y)&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  6  )&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  7  /&lt;/span&gt;&lt;br&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;Table created.&lt;/span&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Looks like a normal parent child relationship - a row may exist in C &lt;i&gt;&lt;b&gt;if and only if&lt;/b&gt; &lt;/i&gt;a parent row exists in P.  If that is true - then how can this happen:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; select count( x||y ) from p;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;COUNT(X||Y)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;-----------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;          0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; select count( x||y ) from c;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;COUNT(X||Y)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;-----------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;          1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are zero records in P - none.  There is at least one record in C and that record has a non-null foreign key.  What is happening?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It has to do with NULLs and foreign keys and the default &amp;quot;MATCH NONE&amp;quot; rule in place.  If your foreign key allows NULLs and your foreign key is a composite key - then you must be careful of the condition where by only SOME of the foreign key attributes are not null.  For example - to achieve the above magic, I inserted:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; insert into c values ( 1, null, 0 );&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;1 row created.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The database cannot validate a foreign key when it is partially null.  In order to enforce the &amp;quot;MATCH FULL&amp;quot; option of a foreign key - you would want to add a constraint to your table:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;ops$tkyte%ORA11GR2&amp;gt; alter table c add constraint check_nullness&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  2  check ( ( x is not null and y is not null ) or&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  3          ( x is null and y is null ) )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;  4  /&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;,Courier,monospace"&gt;Table altered.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That will ensure either:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;All of the columns are NULL in the foreign key&lt;/li&gt;&lt;li&gt;None of the columns are NULL in the foreign key&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;As long as that constraint is in place - your foreign key will work as  you probably think it should work.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;See also: &lt;a href="http://docs.oracle.com/cd/E11882_01/appdev.112/e25518/adfns_constraints.htm#ADFNS273"&gt;http://docs.oracle.com/cd/E11882_01/appdev.112/e25518/adfns_constraints.htm#ADFNS273&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/11839365-2356810001932284199?l=tkyte.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 23 May 2012 21:55:23</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/d733ace77608eb8f2456071215523</guid>
    </item>
    <item>
      <title>Evènement : Live Webcast - Oracle Cloud and Oracle Platinum Services</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18162</link>
      <description>&lt;div style="clear:both;text-align:center"&gt;&lt;a border="0" href="http://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=152190#"&gt;&lt;img border="0" height="140" src="http://3.bp.blogspot.com/-_N8yFOauiYM/T7yPqKgkZ0I/AAAAAAAAJEA/YadO_GhZfYQ/s320/webcast_cloud1.JPG" width="320"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;text-align:center"&gt;Mercredi 6 Juin 2012 &lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/18652259-5334091996031029531?l=jppinte.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 23 May 2012 07:22:27</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/f16ec4a45f98a14c2456071072227</guid>
    </item>
    <item>
      <title>The IN operator trap</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18181</link>
      <description>If you look for workarounds when you reach the edge of the IN operator functionality then take a look here:&lt;br&gt;&lt;a href="http://www.williamrobertson.net/documents/comma-separated.html"&gt;http://www.williamrobertson.net/documents/comma-separated.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;A very nice collection of different workarounds regarding the IN operator.&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6481483192141562388-9066495492909615019?l=www.apex-at-work.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 23 May 2012 07:11:22</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/9dd3ef1d9c88004c2456071071122</guid>
    </item>
    <item>
      <title>Apex collections - small case study</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18161</link>
      <description>Where do you want to hard-code your information?&lt;br&gt;&lt;br&gt;Somewhere pieces of data need to be written down for reference. They could be in a table; in some variables; within the query itself... there would be quite a few possibilities, regardless of the scenario.&lt;br&gt;&lt;br&gt;Consider this statement:&lt;br&gt;&lt;pre&gt;select * from my_table where my_col IN (&amp;#39;CODE_1&amp;#39;, &amp;#39;CODE_2&amp;#39;, &amp;#39;CODE_3&amp;#39;)&lt;/pre&gt;&lt;br&gt;If it where the SQL source from your Apex application, it's minimal coding on your part - but what if the list of available values changes? You'd need to send your application, or at least certain components through the change control process. At the moment that can be annoying.&lt;br&gt;&lt;br&gt;We could move this code to a PL/SQL package, perhaps using nested tables. The code is simple enough, I'm sure we've all done something similar before.&lt;br&gt;&lt;br&gt;First we define a table of records&lt;br&gt;&lt;pre&gt;TYPE sql_rec IS RECORD&lt;br&gt;  (col1  VARCHAR2(200));&lt;br&gt;&lt;br&gt;TYPE nt_sql_vc200 IS TABLE OF sql_rec;&lt;/pre&gt;Then in this case a simple function to pipe the information back will suffice.&lt;br&gt;&lt;pre&gt;FUNCTION param_list&lt;br&gt;RETURN nt_sql_vc200 PIPELINED IS&lt;br&gt;  r1 sql_rec;&lt;br&gt;  r2 sql_rec;&lt;br&gt;  r3 sql_rec;&lt;br&gt;BEGIN&lt;br&gt;  r1.col1 := 'CODE_1';&lt;br&gt;  r2.col1 := 'CODE_2';&lt;br&gt;  r3.col1 := 'CODE_3';&lt;br&gt;&lt;br&gt;  PIPE ROW(r1);&lt;br&gt;  PIPE ROW(r2);&lt;br&gt;  PIPE ROW(r3);&lt;br&gt;&lt;br&gt;END param_list;&lt;/pre&gt;Now we have no hard-coded literals in our SQL source, and it's just like having a sub-query. If we need to change the code list, we can modify the PL/SQL package - a little smoother for deployment.&lt;br&gt;&lt;pre&gt;WHERE my_col IN &lt;br&gt;  (SELECT col1&lt;br&gt;   FROM TABLE(my_pkg.param_list));&lt;/pre&gt;However, in the Apex environment it's still not the most elegant. The Apex team have provided us with a &lt;a href="http://www.codinghorror.com/blog/2009/02/dont-reinvent-the-wheel-unless-you-plan-on-learning-more-about-wheels.html"&gt;wheel&lt;/a&gt; called &lt;a href="http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_collection.htm#CACFAICJ"&gt;Apex Collections&lt;/a&gt;.&lt;br&gt;&lt;br&gt;In using an Apex Collection, we still need some PL/SQL, but it's all made a little simpler.&lt;br&gt;First define a process that might be called when rendering the page&lt;br&gt;&lt;pre&gt;DECLARE&lt;br&gt;  PROCEDURE add_col(pc VARCHAR2) IS&lt;br&gt;  BEGIN&lt;br&gt;    apex_collection.add_member&lt;br&gt;      (p_collection_name =&amp;gt; &amp;#39;PARAM_LIST&amp;#39;&lt;br&gt;      ,p_c001            =&amp;gt; pc);&lt;br&gt;  END add_col;&lt;br&gt;BEGIN&lt;br&gt;  apex_collection.create_or_truncate_collection&lt;br&gt;    (p_collection_name =&amp;gt; &amp;#39;PARAM_LIST&amp;#39;);&lt;br&gt;&lt;br&gt;  add_col('CODE_1');&lt;br&gt;  add_col('CODE_2');&lt;br&gt;  add_col('CODE_3');&lt;br&gt;END  build_params_collection;&lt;/pre&gt;Then modify the where clause a touch&lt;br&gt;&lt;pre&gt;WHERE my_col IN &lt;br&gt; (SELECT c001&lt;br&gt;  FROM apex_collections&lt;br&gt;  WHERE collection_name = 'PARAM_LIST');&lt;br&gt;&lt;/pre&gt;There are plenty of reasons out there why you'd want to use Apex Collections - either check out the documentation linked above, or install the sample application and check out how it's done.&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://1.bp.blogspot.com/-U7Wu_sdjGjM/T1AqoZvj3_I/AAAAAAAAAZk/cBHuMvV1xGQ/s1600/collections.png" style="margin-left:1em;margin-right:1em"&gt;&lt;img border="0" height="140" src="http://1.bp.blogspot.com/-U7Wu_sdjGjM/T1AqoZvj3_I/AAAAAAAAAZk/cBHuMvV1xGQ/s640/collections.png" width="640"&gt;&lt;/a&gt;&lt;/div&gt;Here endeth the lesson.&lt;br&gt;&lt;br&gt;If anyone has other ideas for this problem, either more elegant or more esoteric, I'm all ears!&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/4818542164384221282-8971036381370625337?l=www.grassroots-oracle.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 23 May 2012 01:00:05</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/a9941a3895793ce22456071010005</guid>
    </item>
    <item>
      <title>Some Interesting Oracle Analytic Functions</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18142</link>
      <description>I had to write some reports for a personal application of mine last night and needed to expand beyond my usual set of analytic functions that I normally use. I thought it would be a good idea to do a quick blog post on these analytic functions. &lt;br&gt;&lt;br&gt;&lt;i&gt;If you've never heard of or used Oracle analytic functions please read &lt;a href="http://orafaq.com/node/55"&gt;this article&lt;/a&gt; first. It's by far the best article I've read at explaining what analytic functions are and how to use them. The Oracle analytic function documentation can be found &lt;a href="http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions004.htm#SQLRF06174"&gt;here&lt;/a&gt;.&lt;/i&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;RATIO_TO_REPORT&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions142.htm#i85800"&gt;RATIO_TO_REPORT&lt;/a&gt; compares the current value against the sum of the other set of values.   The following example shows the percentage of each employees salary when compared to the sum of their department's salary. You'll notice that you can calculate the same value using a different method (&lt;i&gt;sal_dept_ratio2&lt;/i&gt;) which may be why I haven't seen RATIO_TO_REPORT used that often.  &lt;br&gt;&lt;pre&gt;SELECT d.dname, e.ename, e.sal, &lt;br&gt;  round(ratio_to_report(sal) OVER (PARTITION BY e.deptno),2) sal_dept_ratio, &lt;br&gt;  round(sal / sum(e.sal) OVER (PARTITION BY e.deptno),2) sal_dept_ratio2&lt;br&gt;FROM emp e, dept d&lt;br&gt;WHERE e.deptno = d.deptno;&lt;br&gt;&lt;br&gt;-- Result&lt;br&gt;&lt;br&gt;DNAME          ENAME             SAL SAL_DEPT_RATIO SAL_DEPT_RATIO2&lt;br&gt;-------------- ---------- ---------- -------------- ---------------&lt;br&gt;ACCOUNTING     CLARK            2450            .28             .28&lt;br&gt;ACCOUNTING     MILLER           1300            .15             .15&lt;br&gt;ACCOUNTING     KING             5000            .57             .57&lt;br&gt;RESEARCH       FORD             3000            .28             .28&lt;br&gt;RESEARCH       SCOTT            3000            .28             .28&lt;br&gt;RESEARCH       JONES            2975            .27             .27&lt;br&gt;RESEARCH       SMITH             800            .07             .07&lt;br&gt;RESEARCH       ADAMS            1100             .1              .1&lt;br&gt;SALES          WARD             1250            .13             .13&lt;br&gt;SALES          MARTIN           1250            .13             .13&lt;br&gt;SALES          TURNER           1500            .16             .16&lt;br&gt;SALES          JAMES             950             .1              .1&lt;br&gt;SALES          ALLEN            1600            .17             .17&lt;br&gt;SALES          BLAKE            2850             .3              .3&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;b&gt;NTH_VALUE&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions114.htm#CJAFEJBE"&gt;NTH_VALUE&lt;/a&gt; returns the nth row in the window clause. It's extremely important that you &lt;u&gt;explicitly define the window&lt;/u&gt; or your values may not make sense. I'll write another post explaining this later. &lt;br&gt;&lt;br&gt;The following example shows the 2nd highest salary in each department.  &lt;br&gt;&lt;pre&gt;&lt;br&gt;SELECT d.dname, e.ename, e.sal, &lt;br&gt;   nth_value(e.sal, 2) OVER (&lt;br&gt;    PARTITION BY e.deptno ORDER BY e.sal DESC &lt;br&gt;    -- Don't forget to define the window&lt;br&gt;    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) sec_high_sal_dept&lt;br&gt;FROM emp e, dept d&lt;br&gt;WHERE e.deptno = d.deptno;&lt;br&gt;&lt;br&gt;-- Result&lt;br&gt;&lt;br&gt;DNAME          ENAME             SAL SEC_HIGH_SAL_DEPT&lt;br&gt;-------------- ---------- ---------- -----------------&lt;br&gt;ACCOUNTING     KING             5000              2450&lt;br&gt;ACCOUNTING     CLARK            2450              2450&lt;br&gt;ACCOUNTING     MILLER           1300              2450&lt;br&gt;RESEARCH       FORD             3000              3000&lt;br&gt;RESEARCH       SCOTT            3000              3000&lt;br&gt;RESEARCH       JONES            2975              3000&lt;br&gt;RESEARCH       ADAMS            1100              3000&lt;br&gt;RESEARCH       SMITH             800              3000&lt;br&gt;SALES          BLAKE            2850              1600&lt;br&gt;SALES          ALLEN            1600              1600&lt;br&gt;SALES          TURNER           1500              1600&lt;br&gt;SALES          WARD             1250              1600&lt;br&gt;SALES          MARTIN           1250              1600&lt;br&gt;SALES          JAMES             950              1600&lt;br&gt;&lt;/pre&gt; &lt;br&gt;&lt;b&gt;LISTAGG&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions089.htm#CJABDFBD"&gt;LISTAGG&lt;/a&gt; was a highly requested feature that was implemented in 11gR2. Overall LISTAGG allows you to group values in multiple rows and put them in a comma delimited column on one row. &lt;br&gt;&lt;br&gt;The following example (which is not an analytic function) shows all the employees for each department:  &lt;pre&gt;&lt;br&gt;SELECT d.dname,&lt;br&gt;  listagg(e.ename, ',') WITHIN GROUP (ORDER BY e.ename) dept_emp_list&lt;br&gt;FROM emp e, dept d&lt;br&gt;WHERE e.deptno = d.deptno&lt;br&gt;GROUP BY d.dname;&lt;br&gt;&lt;br&gt;-- Result&lt;br&gt;&lt;br&gt;DNAME          DEPT_EMP_LIST&lt;br&gt;-------------- ----------------------------------------&lt;br&gt;&lt;br&gt;ACCOUNTING     CLARK,KING,MILLER&lt;br&gt;RESEARCH       ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;SALES          ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;&lt;/pre&gt; Using the LISTAGG as an analytic function you can see each employee's colleagues in their department, including themselves.  &lt;pre&gt;&lt;br&gt;SELECT d.dname, e.ename,&lt;br&gt;  listagg(e.ename, ',') WITHIN GROUP (ORDER BY e.ename) &lt;br&gt;    OVER (PARTITION BY e.deptno) dept_colleagues&lt;br&gt;FROM emp e, dept d&lt;br&gt;WHERE e.deptno = d.deptno;&lt;br&gt;&lt;br&gt;-- Result&lt;br&gt;&lt;br&gt;DNAME          ENAME      DEPT_COLLEAGUES&lt;br&gt;-------------- ---------- --------------------------------------&lt;br&gt;&lt;br&gt;ACCOUNTING     CLARK      CLARK,KING,MILLER&lt;br&gt;ACCOUNTING     KING       CLARK,KING,MILLER&lt;br&gt;ACCOUNTING     MILLER     CLARK,KING,MILLER&lt;br&gt;RESEARCH       ADAMS      ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;RESEARCH       FORD       ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;RESEARCH       JONES      ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;RESEARCH       SCOTT      ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;RESEARCH       SMITH      ADAMS,FORD,JONES,SCOTT,SMITH&lt;br&gt;SALES          ALLEN      ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;SALES          BLAKE      ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;SALES          JAMES      ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;SALES          MARTIN     ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;SALES          TURNER     ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;SALES          WARD       ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD&lt;br&gt;&lt;/pre&gt; &lt;br&gt;&lt;b&gt;NTILE&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions115.htm#i85619"&gt;NTILE&lt;/a&gt; allows you to divide your values into buckets and see which bucket the current row belongs to. For educational institutions this is a very good function to let students know that they're in the top &lt;i&gt;x%&lt;/i&gt; of the class. &lt;br&gt;&lt;br&gt;The following example shows the 3 tiers (or buckets) of salaries across the entire company. It allows you to easily see who's in the top 33% of salaries.   &lt;pre&gt;&lt;br&gt;SELECT d.dname, e.ename, e.sal,&lt;br&gt;  ntile (3) over (order by sal desc) three_tier_sal&lt;br&gt;FROM emp e, dept d&lt;br&gt;WHERE e.deptno = d.deptno;&lt;br&gt;&lt;br&gt;-- Result&lt;br&gt;&lt;br&gt;DNAME          ENAME             SAL THREE_TIER_SAL&lt;br&gt;-------------- ---------- ---------- --------------&lt;br&gt;ACCOUNTING     KING             5000              1&lt;br&gt;RESEARCH       SCOTT            3000              1&lt;br&gt;RESEARCH       FORD             3000              1&lt;br&gt;RESEARCH       JONES            2975              1&lt;br&gt;SALES          BLAKE            2850              1&lt;br&gt;ACCOUNTING     CLARK            2450              2&lt;br&gt;SALES          ALLEN            1600              2&lt;br&gt;SALES          TURNER           1500              2&lt;br&gt;ACCOUNTING     MILLER           1300              2&lt;br&gt;SALES          WARD             1250              2&lt;br&gt;SALES          MARTIN           1250              3&lt;br&gt;RESEARCH       ADAMS            1100              3&lt;br&gt;SALES          JAMES             950              3&lt;br&gt;RESEARCH       SMITH             800              3&lt;br&gt;&lt;/pre&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/2132893136140848212-8480074675922365568?l=www.talkapex.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Tue, 22 May 2012 14:04:26</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/96983687a43aa17e2456070140426</guid>
    </item>
    <item>
      <title>Annonce : Consolidated Database Replay</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18141</link>
      <description>Oracle a annoncé ce jour une nouvelle fonctionnalité attendues depuis longtemps : &lt;strong&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;doctype=ANNOUNCEMENT&amp;amp;id=1453789.1"&gt;Consolidated Database Replay&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Consolidated Database Replay permet de faire un replay de multiples workloads de productions capturés.&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/18652259-2380912142130812292?l=jppinte.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Tue, 22 May 2012 09:58:07</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/3ec7889655f9ef702456070095807</guid>
    </item>
    <item>
      <title>jQGrid Integration Kit for PL/SQL and Apex version 1.2 available</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18121</link>
      <description>It's been over two years since I released &lt;a href="http://ora-00001.blogspot.com/2010/03/jqgrid-integration-kit-for-plsql-and.html"&gt;the initial version&lt;/a&gt; of the jQGrid Integration Kit for PL/SQL and Apex.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;a href="http://4.bp.blogspot.com/-PnG4FqZYOVc/T7qKnpA_1AI/AAAAAAAAAbI/DTb1mL-a45U/s1600/jqgrid_for_plsql_screenshot.jpg" style="clear:left;float:left;margin-bottom:1em;margin-right:1em"&gt;&lt;img border="0" height="545" src="http://4.bp.blogspot.com/-PnG4FqZYOVc/T7qKnpA_1AI/AAAAAAAAAbI/DTb1mL-a45U/s640/jqgrid_for_plsql_screenshot.jpg" width="640"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Since then, I've added some additional features and fixed a few bugs:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h4&gt;Version 1.1&lt;/h4&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Procedure include_static_files_once will make sure required JS and CSS files are correctly included&lt;/li&gt;&lt;li&gt;Support for "popup_lov" column edit type&lt;/li&gt;&lt;li&gt;Procedure render_grid supports p_read_only parameter that can be used to set read-only dynamically&lt;/li&gt;&lt;li&gt;Support for some jQGrid built-in formatters based on Oracle column data type&lt;/li&gt;&lt;li&gt;Lists of values (select list variety, not Popup LOV) now support bind variables and Static LOVs&lt;/li&gt;&lt;li&gt;Date parser handles dates and times&lt;/li&gt;&lt;li&gt;Bug Fix: JSON generator now handles NULL parameter values (Thanks to Matt Nolan for spotting this one)&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;h4&gt;Version 1.2&lt;/h4&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Popup LOV now handles Apex bind variables and arbitrary LOV column names&lt;/li&gt;&lt;li&gt;Support for jQGrid grouping (experimental)&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;The latest version can be &lt;a href="http://code.google.com/p/jqgrid-for-plsql/"&gt;downloaded here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;b&gt;New installation:&lt;/b&gt; Run the &lt;i&gt;install.sql&lt;/i&gt; script. Then run all scripts in the &lt;i&gt;upg&lt;/i&gt; folder. Copy the files in the &lt;i&gt;js&lt;/i&gt; folder to your web server.&lt;br&gt;&lt;br&gt;&lt;b&gt;Upgrade from previous version:&lt;/b&gt; Run all scripts in the &lt;i&gt;upg&lt;/i&gt; folder. Copy the files in the &lt;i&gt;js&lt;/i&gt; folder to your web server (overwriting any previous version of the same files; or copy to a different folder and change references accordingly).&lt;br&gt;&lt;br&gt;&lt;b&gt;Note on jQuery and jQGrid versions:&lt;/b&gt; The Integration Kit (via the &lt;i&gt;include_static_files_once&lt;/i&gt; procedure) references a specific jQuery version (1.3.2). If your web page includes a more recent version of jQuery, you should modify/remove the reference in the Integration Kit to avoid conflicts.&lt;br&gt;&lt;br&gt;The version of jQGrid bundled with the Integration Kit is version 3.6. At the time of writing, the latest jQGrid version available is 4.3.2; this has not been tested with the Integration Kit.&lt;br&gt;&lt;br&gt;Have fun, and please put any bug reports into the &lt;a href="http://code.google.com/p/jqgrid-for-plsql/issues/list"&gt;project issue list&lt;/a&gt;.&lt;br&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/5215551487816981140-4329024015168388405?l=ora-00001.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 21 May 2012 18:50:39</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/dd2fefc3b30fbb052456069185039</guid>
    </item>
    <item>
      <title>New Series of Tutorials now Available</title>
      <link>http://www.apexblogs.info/pls/apex/f?p=APEXBLOGS:BLOG_POSTS:0:::RIR:IREQ_RSS_ID:18102</link>
      <description>&lt;div dir="ltr" style="text-align:left"&gt;You can now try out the latest Workshop series tutorials available on &lt;a href="http://apex.oracle.com/pls/apex/f?p=44785:24:0::NO::P24_CONTENT_ID,P24_PREV_PAGE:6265,1"&gt;Oracle Learning Library&lt;/a&gt;. This series of tutorials includes labs on Oracle Application Express, Oracle SQL Developer, and Oracle SQL Developer Data Modeler. In these tutorials, you use Oracle Application Express 4.1.1 and Oracle SQL Developer 3.1.&lt;br&gt;&lt;br&gt;&lt;ul style="text-align:left"&gt;&lt;li&gt;&lt;b&gt;Re-engineering your Database using Oracle SQL Developer Data Modeler 3.1&lt;/b&gt;: In this tutorial, you use SQL Developer Data Modeler to import your database schema, make some changes, and then generate the modified DDL.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Testing and Debugging Procedures using SQL Developer 3.1&lt;/b&gt;: This tutorial covers how to &lt;br&gt;execute a DDL script, review changes to the database objects, create, execute, test and debug a PL/SQL procedure.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Building an Application Using Oracle Application Express: Part 1&lt;/b&gt;: In this tutorial, you learn how to build and run a database application in Oracle Application Express. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Enhancing your Oracle Application Express Application: Part 2&lt;/strong&gt;: This tutorial covers how enhance your database application by switching to a different theme, creating a chart, dynamic actions, plug-ins and tabular form with a validation&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/6363745713301858920-3908709595929937804?l=chaitanyain.blogspot.com" alt=""&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 21 May 2012 18:51:32</pubDate>
      <guid isPermaLink="false">tag:google.com,2005:reader/item/6f381808791d1c062456069185132</guid>
    </item>
  </channel>
</rss>

