Oracle 1Z0-149 Exam Guide: Program with PL/SQL Syllabus, Passing Score & How to Prepare
The Oracle Database Program with PL/SQL (1Z0-149) is Oracle's PL/SQL developer certification — the natural next step for developers who already know Oracle SQL. This guide covers the full syllabus, the 60% passing score, the exam format and cost, a study plan, and how to prepare for free with SQLMentor's PL/SQL tutorial and timed practice exams.
If you already know you want to practise, jump straight to the free 1Z0-149 practice exams — full-length, timed sets with per-question explanations. Otherwise, read on for the full breakdown.
Exam at a glance
- Exam number: 1Z0-149
- Title: Oracle Database Program with PL/SQL
- Questions: 65 multiple choice
- Duration: 90 minutes (≈ 1 min 23 s per question)
- Passing score: 60%
- Delivery: Pearson VUE test centre or Oracle Online Proctoring
- Cost: around US$245 (varies by region — confirm on Oracle University)
- Assumed knowledge: Oracle SQL at the 1Z0-071 level
Exam fees, formats, and any renewal policy can change, so always confirm the current details on the official Oracle University 1Z0-149 page ↗ before you book. SQLMentor is an independent study resource and is not affiliated with Oracle.
What the 1Z0-149 certifies
Passing 1Z0-149 shows you can design, build, and maintain procedural code inside the Oracle Database: stored procedures and functions, packages, triggers, every cursor style, exception handling, collections, bulk operations, dynamic SQL, and Oracle's built-in packages. It is aimed at developers who write server-side Oracle logic, not just application SQL.
Is the 1Z0-149 worth it?
If you build PL/SQL for a living, this is the credential that proves it, and it pairs naturally with the 1Z0-071 SQL certification. The exam goes deep on the details that separate working PL/SQL from robust PL/SQL — cursor behaviour, exception propagation, BULK COLLECT/FORALL performance, and package state — so preparing for it tends to make you a better Oracle developer regardless of the certificate.
Full syllabus breakdown
The 1Z0-149 blueprint covers the PL/SQL language end to end. Each area below links to the matching topic in SQLMentor's PL/SQL tutorial so you can study and practise it immediately.
1. PL/SQL fundamentals
Block structure (declare/begin/exception/end), variables and data types, %TYPE and %ROWTYPE, and control structures. Study blocks, variables, and loops.
2. Cursors
Implicit cursors and their attributes, explicit cursors, cursor FOR loops, parameterised cursors, and REF cursors. Study explicit cursors and REF cursors.
3. Procedures and functions
Creating stored procedures and functions, parameter modes (IN/OUT/IN OUT), and calling them from SQL and PL/SQL. Study procedures and functions.
4. Packages
Package specification vs. body, overloading, forward declarations, and package state. Study packages.
5. Triggers
DML triggers, INSTEAD OF triggers on views, compound triggers, and system/DDL triggers, plus firing order. Study triggers.
6. Exception handling
Predefined and user-defined exceptions, PRAGMA EXCEPTION_INIT, SQLCODE/SQLERRM, and how exceptions propagate. Study exception handling.
7. Collections and bulk operations
Associative arrays, nested tables, varrays, and high-performance BULK COLLECT and FORALL. Study collections and bulk operations.
8. Dynamic SQL and built-in packages
EXECUTE IMMEDIATE and DBMS_SQL, plus common built-ins such as DBMS_OUTPUT, UTL_FILE, and DBMS_SCHEDULER. Study dynamic SQL and built-in packages.
A realistic 5-week study plan
PL/SQL is best learned by writing it. Run every construct yourself in a real Oracle instance or the SQL editor as you go.
- Week 1 — fundamentals: Blocks, variables,
%TYPE/%ROWTYPE, and control structures. Rewrite each example from the PL/SQL tutorial yourself. - Week 2 — cursors & subprograms: All cursor styles, then procedures and functions with each parameter mode.
- Week 3 — packages, triggers, exceptions: Package spec/body and overloading, the trigger types and firing order, and exception propagation with
PRAGMA EXCEPTION_INIT. - Week 4 — collections, bulk, dynamic SQL: Collections,
BULK COLLECT/FORALL, dynamic SQL, and the common built-in packages. Then take Practice Set 1 under timing. - Week 5 — polish: Review every missed question and take Sets 2 and 3 a day apart. You are ready at a consistent 70%+, a cushion above the 60% cut line.
Common reasons candidates fail (and how to avoid them)
- Weak SQL underneath. PL/SQL sits on top of SQL. If joins, subqueries, and NULL handling are shaky, shore them up with 1Z0-071-level study first.
- Cursor attribute confusion. Know exactly when
%FOUND,%NOTFOUND, and%ROWCOUNTare valid for implicit vs. explicit cursors. - Exception propagation. Understand what happens when an exception is not handled in the current block — a frequent exam theme.
- Guessing at bulk performance. Know why
BULK COLLECT/FORALLbeat row-by-row loops, and the role ofLIMIT.
Ready to test yourself?
SQLMentor has full-length, timed 1Z0-149 practice exams with per-question explanations — free, no sign-up, progress saved locally in your browser.
Start the free 1Z0-149 practice exams →