All Practice Exams

100+ Free 1Z0-149 Practice Questions

Pass your Oracle Database Program with PL/SQL (1Z0-149) exam on the first try — instant access, no signup required.

✓ No registration✓ No credit card✓ No hidden fees✓ Start practicing immediately
Not published Pass Rate
100+ Questions
100% Free
1 / 100
Question 1
Score: 0/0

Which clause binds a value to a placeholder in EXECUTE IMMEDIATE 'INSERT INTO t VALUES (:1)'?

A
B
C
D
to track
Same family resources

Explore More Oracle Certifications

Continue into nearby exams from the same family. Each card keeps practice questions, study guides, flashcards, videos, and articles in one place.

2026 Statistics

Key Facts: 1Z0-149 Exam

65

Total Questions

Oracle

90 min

Time Limit

Oracle

66%

Passing Score

Oracle

$245

Exam Fee (USD)

Oracle 2026

16

Official Topic Areas

Oracle 1Z0-149 syllabus

Pearson VUE

Delivery Provider

Oracle

1Z0-149 is a 90-minute, 65-question multiple-choice exam with a 66% passing score and a USD $245 fee. It covers 16 official topics including PL/SQL block fundamentals, composite types, cursors, exception handling, packages, triggers, dynamic SQL, design considerations, and the PL/SQL compiler.

Sample 1Z0-149 Practice Questions

Try these sample questions to test your 1Z0-149 exam readiness. Each question includes a detailed explanation. Start the interactive quiz above for the full 100+ question experience with AI tutoring.

1Which section of a PL/SQL block is mandatory?
A.DECLARE
B.BEGIN
C.EXCEPTION
D.END IF
Explanation: Every PL/SQL block must contain an executable section that begins with BEGIN and ends with END. The DECLARE and EXCEPTION sections are optional. END IF is part of an IF statement, not a block structure.
2Which data type is NOT a valid scalar type in PL/SQL?
A.PLS_INTEGER
B.BOOLEAN
C.VARCHAR2
D.TABLE
Explanation: TABLE is a composite type used to define collections (e.g., associative arrays or nested tables) and is not a scalar type. PLS_INTEGER, BOOLEAN, and VARCHAR2 are all scalar data types in PL/SQL.
3What is printed by the following block? DECLARE v_x NUMBER := 10; BEGIN DECLARE v_x NUMBER := 20; BEGIN DBMS_OUTPUT.PUT_LINE(v_x); END; END;
A.10
B.20
C.NULL
D.Compilation error: duplicate identifier
Explanation: The inner block declares its own v_x with value 20 that shadows the outer v_x within its scope. Inside the inner block, v_x refers to the local variable, so DBMS_OUTPUT.PUT_LINE prints 20.
4Which statement about anchored declarations using %TYPE is correct?
A.%TYPE copies the column data type but not NOT NULL constraints or default values
B.%TYPE inherits NOT NULL constraints and default values from the referenced column
C.%TYPE can only be used to reference local PL/SQL variables, not table columns
D.%TYPE evaluates the data type once at compile time and freezes it permanently
Explanation: When a variable is declared with %TYPE referencing a column, only the data type is inherited. NOT NULL constraints, default values, and check constraints are NOT inherited. The data type is resolved each time the program unit is compiled, so changes to the underlying column propagate on recompile.
5Which of the following correctly assigns a value to a PL/SQL variable named v_count?
A.v_count = 10;
B.SET v_count = 10;
C.v_count := 10;
D.ASSIGN v_count = 10;
Explanation: The PL/SQL assignment operator is := (colon-equal). The single equal sign is the comparison operator, not assignment. SET and ASSIGN are not PL/SQL keywords for variable assignment.
6Which SQL DML statement can be issued directly inside a PL/SQL executable block without using EXECUTE IMMEDIATE?
A.CREATE TABLE
B.ALTER SESSION
C.INSERT
D.GRANT
Explanation: PL/SQL supports static SQL for DML statements (SELECT, INSERT, UPDATE, DELETE, MERGE) and transaction control (COMMIT, ROLLBACK, SAVEPOINT) directly. DDL (CREATE, ALTER, DROP), session control (ALTER SESSION), and DCL (GRANT, REVOKE) require EXECUTE IMMEDIATE or DBMS_SQL.
7What is the value of v_result after this block executes? DECLARE v_a NUMBER := NULL; v_result VARCHAR2(10); BEGIN IF v_a = NULL THEN v_result := 'EQUAL'; ELSE v_result := 'OTHER'; END IF; END;
A.'EQUAL'
B.'OTHER'
C.NULL
D.Raises an exception
Explanation: Comparing anything to NULL using = returns NULL (not TRUE). In an IF statement, a NULL condition is treated like FALSE, so the ELSE branch runs and v_result is set to 'OTHER'. To test for NULL, use IS NULL.
8Which loop construct is guaranteed to execute its body at least once?
A.FOR loop with reverse range
B.WHILE loop
C.Basic LOOP with EXIT WHEN at the bottom
D.Numeric FOR loop with empty range
Explanation: A basic LOOP ... EXIT WHEN ... END LOOP where the EXIT WHEN is at the bottom executes the body once before the condition is tested. WHILE tests its condition first and may skip the body. A FOR loop with low > high (or a reverse with high < low) does not execute at all.
9Which CASE construct returns a value rather than executing statements?
A.Searched CASE statement
B.Simple CASE statement
C.CASE expression
D.CASE WHEN ... THEN ... NULL ... END statement
Explanation: A CASE expression returns a value and can be used wherever an expression is allowed (e.g., in an assignment or SELECT list). A CASE statement (simple or searched) executes one of several PL/SQL statement sequences and ends with END CASE.
10Which transaction control statement creates a marker that can be used to undo part of a transaction?
A.COMMIT
B.ROLLBACK
C.SAVEPOINT
D.SET TRANSACTION
Explanation: SAVEPOINT name creates a named marker within a transaction. A subsequent ROLLBACK TO SAVEPOINT name undoes work done after that savepoint without ending the transaction. COMMIT makes changes permanent; ROLLBACK alone undoes the entire transaction; SET TRANSACTION configures isolation level or read-only mode.

About the 1Z0-149 Exam

The 1Z0-149 exam validates competency to design, write, debug, and tune PL/SQL programs for Oracle Database 19c. Successful candidates earn the Oracle Database PL/SQL Developer Certified Professional credential.

Questions

65 scored questions

Time Limit

90 minutes

Passing Score

66%

Exam Fee

USD $245 (Oracle University via Pearson VUE)

1Z0-149 Exam Content Outline

Core fundamentals

PL/SQL Fundamentals

Declaring variables, writing executable statements, SQL inside PL/SQL, control structures, and transaction control.

Composite data

Composite Types and Cursors

PL/SQL records, %ROWTYPE, associative arrays, nested tables, VARRAYs, explicit cursors, cursor FOR loops, and REF CURSORs.

Robustness

Exceptions and Subprograms

Predefined and user-defined exceptions, PRAGMA EXCEPTION_INIT, RAISE_APPLICATION_ERROR, procedures, functions, parameter modes, and named notation.

Modular code

Packages, Triggers, and Dynamic SQL

Package spec/body, overloading, forward declarations, DML/INSTEAD OF/compound/system triggers, EXECUTE IMMEDIATE, and DBMS_SQL.

Design and tuning

Design Considerations and Compiler

AUTHID, ACCESSIBLE BY, NOCOPY, autonomous transactions, RESULT_CACHE, conditional compilation, native compilation, PL/SQL warnings, and dependencies.

How to Pass the 1Z0-149 Exam

What You Need to Know

  • Passing score: 66%
  • Exam length: 65 questions
  • Time limit: 90 minutes
  • Exam fee: USD $245

Keys to Passing

  • Complete 500+ practice questions
  • Score 80%+ consistently before scheduling
  • Focus on highest-weighted sections
  • Use our AI tutor for tough concepts

1Z0-149 Study Tips from Top Performers

1Read PL/SQL code blocks carefully and predict outputs; many items hinge on subtle scoping, NULL handling, and exception flow
2Practice the difference between %TYPE, %ROWTYPE, RECORD, and object types so you choose the right composite construct
3Memorize cursor attributes (%FOUND, %NOTFOUND, %ROWCOUNT, %ISOPEN) and when each becomes valid for implicit and explicit cursors
4Drill BULK COLLECT (with LIMIT) and FORALL (with INDICES OF and SAVE EXCEPTIONS) on real schemas to internalize bulk-binding patterns
5Be fluent in package design topics: spec vs body visibility, overloading rules, forward declarations, and PRAGMA SERIALLY_REUSABLE
6Know the contrast between definer rights (AUTHID DEFINER) and invoker rights (AUTHID CURRENT_USER), plus ACCESSIBLE BY whitelists

Frequently Asked Questions

What is the format of the 1Z0-149 exam?

1Z0-149 is a 90-minute, 65-question multiple-choice exam delivered through Pearson VUE either online with proctoring or at a test center. The passing score is 66% (about 43 correct answers).

How much does the 1Z0-149 exam cost?

The Oracle 1Z0-149 exam fee is USD $245 in the United States. Pricing varies in other regions and currencies; check Oracle CertView for the local price before scheduling.

What database version does 1Z0-149 cover?

1Z0-149 covers Oracle Database 19c PL/SQL. Many concepts apply to 12c, 18c, and 21c, but specific syntax such as ACCESSIBLE BY whitelists and polymorphic table functions reflect 12c+/18c+ features.

Are there prerequisites for 1Z0-149?

Oracle does not require a formal prerequisite exam, but hands-on PL/SQL development and prior experience with Oracle SQL are strongly recommended. The exam expects candidates to read and reason about PL/SQL code blocks.

How long should I study for 1Z0-149?

Working PL/SQL developers typically study 60-120 hours over 8-12 weeks, focusing on the 16 official topic areas. New developers should plan additional time to build hands-on experience writing packages, triggers, and bulk-bound DML.

Can I retake 1Z0-149 if I fail?

Yes. Oracle requires a 14-day wait between attempts and limits candidates to four attempts on the same exam within any 12-month period. Each retake requires a new exam fee.