Why Study with PlanetCert?
The Latest Questions
Practice questions and exam topics aligned with the current exam objectives.
Detailed Explanations
Go beyond the answer. Master the material with comprehensive learning and professional explanations for every concept.

AI-Powered Insights
Personalized preparation guidance that adapts to your performance and identifies weak spots automatically.
Exam Information
Official specifications published by Oracle
Exam Format
Registration
Validity
1Z0-149 Exam Topics and Domains
1Z0-149 is organized into 18 weighted domains. Expect to work with PL/SQL Compiler, PL/SQL Access Control, PL/SQL Collections, PL/SQL Control Structures, and more.
Declaring PL/SQL Variables
Variable Identifiers and Declarations
- Recognize valid and invalid identifiers
- Declare and initialize variables correctly
- Use bind variables effectively
- Apply %TYPE and %ROWTYPE attributes appropriately
Writing Executable Statements
PL/SQL Block Structure
- Identify lexical units in PL/SQL blocks
- Use built-in SQL functions and sequences
- Apply implicit and explicit conversions correctly
- Write readable code with proper structure and indentation
Writing SQL in PL/SQL
DML and Transaction Control
- Create PL/SQL blocks using DML statements
- Use transaction control statements appropriately
- Handle the INTO clause correctly in SELECT statements
Writing Control Structures
Conditional Control
- Identify uses and types of control structures
- Implement IF statements correctly
- Use CASE statements and expressions appropriately
Loop Structures
- Construct and identify different loop types
- Use EXIT and CONTINUE statements appropriately
- Control loop execution effectively
Working with Composite Data Types
Records
- Create user-defined PL/SQL records
- Use %ROWTYPE attribute for record creation
- Initialize and manipulate records
Collections
- Create INDEX BY tables and collections of records
- Understand differences among records, collections, and collections of records
- Initialize collections and records properly
- Use collection methods effectively
Using Explicit Cursors
Cursor Fundamentals
- Distinguish between implicit and explicit cursors
- Use SQL cursor attributes
- Declare and control explicit cursors
- Use simple loops and cursor FOR loops to fetch data
Advanced Cursor Features
- Declare and use cursors with parameters
- Lock rows with FOR UPDATE clause
- Reference current row with WHERE CURRENT OF clause
Handling Exceptions
Exception Types and Handling
- Define PL/SQL exceptions
- Recognize unhandled exceptions
- Handle different types of exceptions
- Propagate exceptions appropriately
Using PL/SQL Subprograms
Subprogram Basics
- Differentiate between anonymous blocks and subprograms
- Create simple procedures
- Invoke procedures from anonymous blocks
- Identify benefits of using subprograms
Creating Procedures and Using Parameters
Procedures with Parameters
- Create procedures with parameters
- Use named notation for procedure calls
- Work with procedures (create, invoke, remove)
- Handle exceptions in procedures
- Display procedure information
Creating Functions
Function Implementation
- Differentiate between procedures and functions
- Describe uses of functions
- Work with functions (create, invoke, remove)
Creating Packages
Package Structure
- Identify benefits and components of packages
- Work with packages (create specification and body)
- Invoke package subprograms
- Remove packages
- Display package information
- Overload package subprograms
- Use forward declarations
Working with Packages
Package Variables and Access Control
- Use package types and variables
- Use packaged constants and functions in SQL
- Use ACCESSIBLE BY to restrict access to package subprograms
Using Dynamic SQL
Native Dynamic SQL
- Describe execution flow of SQL statements
- Use Native Dynamic SQL (NDS)
- Bind PL/SQL types in SQL statements
Design Considerations for PL/SQL Code
Code Quality and Performance
- Create standard constants and exceptions
- Write and call local subprograms
- Control run-time privileges of subprograms
- Perform autonomous transactions
- Use NOCOPY, PARALLEL_ENABLE, and DETERMINISTIC
- Use bulk binding and RETURNING clause with DML
Creating Compound, DDL, and Event Database Triggers
Advanced Trigger Types
- Create triggers on DDL statements
- Create triggers on system events
- Describe different types of triggers and their uses
Using the PL/SQL Compiler
Compiler Features
- Describe PL/SQL compiler and features
- Use PL/SQL compiler initialization parameters
- Use PL/SQL compile-time warnings
Managing PL/SQL Code
Code Management Features
- Describe and use conditional compilation
- Implement code-based access control
- Whitelist code access with ACCESSIBLE BY
- Mark code as deprecated
Managing Dependencies
Dependency Tracking
- Track and manage procedural dependencies
- Identify dependencies using data dictionary
- Handle invalid objects due to dependency changes
How do I earn this certification?
Passing 1Z0-149 earns the Oracle Database PL/SQL Developer Certified Professional certification. It sits in the Database Development track.
- 1Z0-082 - Oracle Database Administration IFor developers wanting to expand into database administration
- 1Z0-083 - Oracle Database Administration IIAdvanced DBA certification complementing development skills
- 1Z0-997-25 - Oracle Cloud Infrastructure Architect ProfessionalFor developers moving to cloud-based Oracle solutions
- 1Z0-1085-25 - Oracle Cloud Infrastructure 2025 Foundations AssociateEntry point to Oracle Cloud certifications
Practice with Precision
The PlanetCert Simulator mirrors the real exam environment with authentic questions and timed pressure.
How to study for this exam?
The most effective way to prepare for 1Z0-149 is by using the PlanetCert Simulator to practice questions and review detailed explanations.
What's changed on this exam?
- ACTIVE
- Last content update: 2025-11-01
- Oracle Database 19c 19c 1Z0-149 validates for Oracle Database 19c - current long-term support release • Release date: 2019-02-01
- Oracle Database 21c 21c Innovation release - PL/SQL concepts from 1Z0-149 remain applicable • Release date: 2021-08-01
- Oracle Database 23ai 23ai Latest innovation release - builds on PL/SQL foundation tested in 1Z0-149 • Release date: 2023-05-01
- Oracle Autonomous Database Current Cloud service that supports PL/SQL - 1Z0-149 skills directly applicable • Release date: Ongoing
Who should take this exam?
- Oracle Database SQL knowledge
- Basic understanding of database concepts
- Completion of Oracle Database Program with PL/SQL training
- Hands-on experience with PL/SQL programming