<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Best Practices PL/SQL with Steven Feuerstein: Most Recent Content</title>
    <description>Steven answers your questions about PL/SQL programming and best practices from a practical implementation point of view.</description>
    <link>http://www.oracle.com/technology/pub/columns/plsql/index.html</link>
    <language>en-us</language>
    <copyright>Copyright 2008, Oracle Corporation</copyright>
    <image>
      <title>Best Practices PL/SQL with Steven Feuerstein</title>
      <url>http://www.oracle.com/technology/pub/columns/images/feuerstein.jpg</url>
      <link>http://www.oracle.com/technology/pub/columns/plsql/index.html</link>
      <description>Steven answers your questions about PL/SQL programming and best practices from a practical implementation point of view.</description>
    </image>
    <item>
      <title>Best practices for where, when, and how to handle exceptions (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15522</link>
      <description>I recently learned that if an exception is raised in the declaration section of my block, that block&apos;s exception section cannot handle the exception. That doesn&apos;t seem right. Why does PL/SQL work this way, and what does it mean for my coding practices?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15522</guid>
      <pubDate>Tue, 09 Sep 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Application Source Code Inside an Exception Handler (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15523</link>
      <description>I was taught that it is a bad practice to put application source code inside an exception handler. We should be able to remove all our exception sections, and—assuming no errors—our code should work the same. But I&apos;ve run into lots of situations where I execute a SELECT INTO (an implicit one-row query), expecting it to return no rows (in other words, that&apos;s the correct result). However, Oracle Database raises a NO_DATA_FOUND exception, and I then have to write application logic down in the exception section. Should I never use an implicit SELECT INTO statement in my code?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15523</guid>
      <pubDate>Tue, 09 Sep 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Best practices for changing headers and handling different WHERE clauses (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15524</link>
      <description>I maintain a large application implemented in PL/SQL. Lately, a number of enhancements have required changes to the signatures of several procedures and functions. I have had to add new parameters and remove others. This has led to the need to change many other programs that call these units. How can I minimize the ripple effect of changes such as these? </description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15524</guid>
      <pubDate>Tue, 09 Sep 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Changing WHERE (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15525</link>
      <description>I need to write a procedure to process multiple rows of data from a table, and each time I call the procedure, the WHERE clause may change. I would like to use EXECUTE IMMEDIATE, but that lets me return only a single row of data. How can I avoid the nightmare of maintaining code in multiple procedures that is completely identical except for the WHERE clause?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:15525</guid>
      <pubDate>Tue, 09 Sep 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Knowing your LIMIT (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14922</link>
      <description>I have started using BULK COLLECT whenever I need to fetch large volumes of data. This has caused me some trouble with my DBA, however. He is complaining that although my programs might be running much faster, they are also consuming way too much memory. He refuses to approve them for a production rollout. What&apos;s a programmer to do?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14922</guid>
      <pubDate>Tue, 13 May 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Kicking the %NOTFOUND Habit (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14942</link>
      <description>I was very happy to learn that Oracle Database 10&lt;I&gt;g&lt;/I&gt; will automatically optimize my cursor FOR loops to perform at speeds comparable to BULK COLLECT. Unfortunately, my company is still running on Oracle9&lt;I&gt;i&lt;/I&gt; Database, so I have started converting my cursor FOR loops to BULK COLLECTs. I have run into a problem: I am using a LIMIT of 100, and my query retrieves a total of 227 rows, but my program processes only 200 of them. [The query is shown in Listing 2.] What am I doing wrong?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14942</guid>
      <pubDate>Tue, 13 May 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Knowing your PGA impact (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14962</link>
      <description>My DBA wants me to reduce the amount of PGA (program global area) memory I use in my 
collection-based programs. Isn&apos;t it the DBA&apos;s job to manage memory, and if it isn&apos;t, how am I supposed to know how much PGA memory I am using?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14962</guid>
      <pubDate>Tue, 13 May 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Indexing Collections (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14982</link>
      <description>I want to use associative arrays to quickly look up an office product name for a given product number and a product number for a given product name. Product names are unique, and product numbers are integers. I see how I can use the product number as the index value in my collection of names, but I also need to reverse the process and find a product number for a given product name. Can I create another index on a collection&apos;s contents? </description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:14982</guid>
      <pubDate>Tue, 13 May 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Best practices—and preparation—for PL/SQL in Oracle Database 11g  (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:13582</link>
      <description>I have been reading that Oracle is launching the 11th release of its database. Very exciting! But here&apos;s the problem: I don&apos;t think I&apos;ll be able to use it for another two years. So why should I even care about the new PL/SQL features of this future (for me) release? </description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:13582</guid>
      <pubDate>Fri, 19 Oct 2007 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Best practices for PL/SQL in Oracle Database 11g and multilevel, string-indexed collections (Q&amp;A)</title>
      <link>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:13602</link>
      <description>I have been assigned one of those big blobs of spaghetti code to maintain, and in particular I have to make changes to a very complicated loop. I want to be able to make a &quot;surgical strike&quot;—put the new rules in place and then bypass the rest of the logic in the loop body with the minimum-possible fuss. What&apos;s the best way to do this?</description>
      <author>PL/SQL Best Practices</author>
      <guid>http://htmldb.oracle.com/pls/otn/f?p=2853:4:::NO::P4_QA_ID:13602</guid>
      <pubDate>Fri, 19 Oct 2007 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
