For Oracle professionals who are pursuing the Oracle PL/SQL Developer Certified Associate certification, there are two exams that will satisfy the PL/SQL requirement: “1Z0-147: Program with PL/SQL” and the newer version: “1Z0-144: Oracle Database 11g: Program with PL/SQL”. There is a fair amount of confusion among candidates seeking certification over whether they should take one test, or the other, or both. The intent of this article is to help explain the two tests, their similarities and differences, and why you might take one over the other.
One thing should be made clear from the outset: there is never a reason to take both tests. Unlike the DBA track, Oracle PL/SQL certifications are not tied to the database release. You do not become certified in release X of Oracle PL/SQL and then have a requirement to take upgrade exams. Because either of these two tests will satisfy the OCA-level PL/SQL requirement, passing the other would provide no certification benefit. That said, you must decide which of the two tests to pursue. The 1Z0-147 test is several years older than 1Z0-144. Unless there is a specific reason that taking the older test will benefit you, your better option is to go with the 11G version of the exam. Until Oracle retires 1Z0-147, however, the choice is yours.
The two tests have a great deal of commonality between them. This makes sense as they are for essentially the same topic. What is surprising is the number of differences that exist between the two. 1Z0-144 is not simply a remake of the earlier test with new PL/SQL features from versions 10G and 11G tacked on. There is an entirely different feel to the test and the topics covered. There are several sections that do not exist in 1Z0-147 which cover features that did not exist in 9i. However, the majority of the new sections in 1Z0-144 cover core topics of PL/SQL programming that arguably should have been in the earlier test. Some of the types of information covered in 1Z0-144 but not 1Z0-147 include:
- The benefits of using PL/SQL
- Programming basics, including variables, conventions, attributes, and lexical units
- Use of SQL functions in PL/SQL
- Implicit vs. explicit data conversion
- Use of labels, indentation, and whitespace to make more readable code
- The use of DML in PL/SQL
- The use of control structures and Loops
- The use of cursors and cursor attributes
- The use of the FOR UPDATE clause
- Exception Handling
- PL/SQL Design considerations
- Composite data types
- Autonomous transactions
- BULK SQL operations
- PL/SQL compiler changes
The number of topics covered in 1Z0-147 that are not covered in 1Z0-144 is much smaller. However, the first three are surprising considering the pronounced shift to PL/SQL fundamentals in the 11G test:
- Privileges required to execute procedures
- Parameter modes and DEFAULT values
- Parameter passing methods — by reference vs. by value
- A much larger focus on triggers
- More references to client-side PL/SQL (1Z0-144 largely ignores client-side)
- More focus on PL/SQL dependencies and invalidations
- Large objects and the use of the DBMS_LOB package
If you end up pursuing 1Z0-147, be sure to study using the Oracle 9i documentation. Capabilities that were added to PL/SQL in 10G or 11G will not be on that test. Having researched the topics for both tests, I consider 1Z0-144 to be the better exam from the standpoint of the information tested. The subject matter is a better mix of what is important for an entry-level PL/SQL developer to know. New developers studying for this exam will come out with a more rounded and complete knowledge of PL/SQL fundamentals. Whichever exam you pursue, be sure to study each of the exam topics listed on the Oracle Education site before scheduling the exam. Good luck on the test.