匠人学院 JR Academy
Oracle助理级数据库

Oracle Database: Program with PL/SQL (1Z0-149)

Oracle Database PL/SQL exam prep covering block structure, variables, cursors, exceptions, procedures, functions, packages, triggers, dynamic SQL, and collections. Includes 29 practice questions with explanations, a 120-minute exam format, and a 63% passing score.

63
Official exam questions
120 min
Exam duration
63/100
Passing score
01

Understand the certification

1Z0-149 是 Oracle PL/SQL 开发的经典 OCP 考试 — 如果你在写存储过程、触发器、包的 Oracle 项目里工作,这张证直接对口;做应用层 Java/Python 开发的人不需要。

Oracle Database: Program with PL/SQL (1Z0-149) 验证 PL/SQL 编程能力,63 题 / 120 分钟,及格线 63%(约 40 题),费用 $245 USD。这是 Oracle Database PL/SQL Developer Certified Professional (OCP) 的核心考试之一。

考试覆盖 PL/SQL 的全部核心功能:匿名块和命名块、变量声明和赋值、条件语句和循环、显式游标(Cursor)和隐式游标、异常处理(预定义异常 + 自定义异常 + PRAGMA EXCEPTION_INIT)、存储过程和函数、包(Package Spec + Package Body)、触发器(DML/DDL/Database Event/INSTEAD OF)、动态 SQL(EXECUTE IMMEDIATE/DBMS_SQL)。

PL/SQL 在云原生和微服务时代看似过时,但在银行核心系统(Oracle Financials/FLEXCUBE)、电信计费系统(Oracle BRM)、政府 ERP(Oracle E-Business Suite)中仍然是主力语言。这些系统的业务逻辑大量写在数据库存储过程里,短期内不会重写。

Exam at a glance

Exam code
1Z0-149
Provider
Oracle
Format
Single choice / Multiple select
Language
English / 日本語
Validity
No expiry
Exam fee
$245

Skills in focus

Oracle 技术数据库管理系统架构性能优化故障排除

Learning outcomes

  • Prepare for the Oracle 1Z0-149 exam with a practical study plan
  • Write PL/SQL blocks, subprograms, packages, triggers, and dynamic SQL with more confidence
  • Handle cursors, exceptions, and collections in a cleaner way
  • Improve your fit for Oracle database development and programming roles

Who this is for

  • Oracle developers writing PL/SQL for application and database work
  • Database professionals who need a practical PL/SQL credential
  • IT staff preparing for Oracle database programming roles
  • Engineers who want stronger Oracle support and development skills

Before you start

  • Basic Oracle database knowledge is recommended
  • You should be comfortable with SQL before starting
  • Some hands-on database programming or support experience will help
02

Your learning path

Plan your preparation

Learning hours
28h
With relevant experience
4-6 weeks
Starting from scratch
8-12 weeks
Daily study
1-2h

Included in your preparation

  • 29 practice questions built around the real PL/SQL topics in the exam
  • Coverage of blocks, cursors, exceptions, procedures, packages, triggers, dynamic SQL, and collections
  • Mock exam aligned to the 63-question, 120-minute format
  • Plain explanations that focus on how PL/SQL behaves in practice
  • A study flow that starts with core syntax and ends with exam-style scenarios

1. 第一阶段:PL/SQL 基础语法(2-3 周)

在 Oracle XE 或 Oracle Live SQL 上练习。DECLARE-BEGIN-EXCEPTION-END 块结构、变量声明(%TYPE/%ROWTYPE)、IF-THEN-ELSIF-ELSE、CASE、LOOP/WHILE/FOR 循环。重点练习显式游标(CURSOR FOR loop vs OPEN-FETCH-CLOSE 两种写法)和 REF CURSOR(动态游标)。

2. 第二阶段:存储过程 + 包 + 触发器(2-3 周)

CREATE OR REPLACE PROCEDURE/FUNCTION 的参数模式(IN/OUT/IN OUT)和 NOCOPY hint。Package Spec(声明)和 Package Body(实现)的分离机制、Package 初始化块。触发器类型:BEFORE/AFTER + INSERT/UPDATE/DELETE 的 12 种组合、:NEW/:OLD 伪记录、INSTEAD OF 触发器(用于视图 DML)。触发器的执行顺序(Statement-level BEFORE → Row-level BEFORE → DML → Row-level AFTER → Statement-level AFTER)。

3. 第三阶段:异常处理 + 动态 SQL + 模考(2 周)

预定义异常(NO_DATA_FOUND/TOO_MANY_ROWS/ZERO_DIVIDE/DUP_VAL_ON_INDEX)的触发条件。PRAGMA EXCEPTION_INIT 绑定自定义异常到 Oracle 错误码。RAISE_APPLICATION_ERROR(-20000 到 -20999 范围)。EXECUTE IMMEDIATE 的 USING 和 INTO 子句。用 Enthuware 1Z0-149 或 Whizlabs 做 2 次模考。

03

Career value

PL/SQL Developer 在澳洲的需求集中在金融(CBA/Westpac 的 Oracle Financials 团队)和政府部门(Service NSW、Defence)。Seek 上 "PL/SQL Developer" 年薪中位数约 $115K AUD。

1Z0-149 和 1Z0-071(SQL)组合可以获得 Oracle Database PL/SQL Developer OCP,这是 Oracle 开发方向的权威认证。单独 1Z0-149 不够,需要配合 SQL 考试。

不适合的人群:做前端/移动端/云原生微服务的开发者 — PL/SQL 是数据库内嵌的过程化语言,和你的日常工作没有交集。学 Python/Java 写 ORM 操作数据库的人也不需要 PL/SQL 认证。

PL/SQL DeveloperOracle Database DeveloperERP Technical ConsultantOracle 数据库开发
澳洲
AUD 95,000 – 140,000
美国
USD 90,000 – 135,000
中国
CNY 200,000 – 380,000

Preparation tips

  • 63 题 120 分钟,约 1.9 分钟/题。代码阅读题需要手动追踪变量值和游标状态。
  • RAISE_APPLICATION_ERROR 的错误码范围是 -20000 到 -20999,其他范围是 Oracle 保留的。考试可能给一个超出范围的错误码问"会发生什么"。
  • Package 题注意区分 Spec 和 Body — Spec 是接口(其他程序只能看到 Spec 中声明的元素),Body 是实现(可以包含 Spec 中未声明的私有元素)。

Common mistakes

  • **%TYPE 和 %ROWTYPE 混淆** — %TYPE 取单个列的数据类型(v_name employees.first_name%TYPE),%ROWTYPE 取整行的结构(v_emp employees%ROWTYPE)。考试至少 2 道。
  • **触发器的 :NEW 和 :OLD 限制** — INSERT 触发器只有 :NEW(没有 :OLD),DELETE 触发器只有 :OLD(没有 :NEW),UPDATE 两者都有。在不存在的伪记录上引用字段会编译通过但运行时得到 NULL。
  • **EXCEPTION WHEN OTHERS 的位置** — WHEN OTHERS 必须是最后一个异常处理分支,放在其他异常前面会导致编译错误。
04

Before you register

How difficult is the 1Z0-149 exam?

The 1Z0-149 exam contains approximately 63 questions with a 120-minute time limit, requiring a passing score of 63%. It is recommended to study systematically and practice with a large number of questions.

What is the exam fee and validity period?

The 1Z0-149 exam fee is $245 USD. Oracle certifications typically do not have a fixed expiration date, but it is recommended to update regularly to keep your skills current.

How do I register for the exam?

You can register through the Oracle University website or Pearson VUE testing centers. Both online proctored and in-person testing center options are available.

05

Learner experiences

Loading reviews…

工作中天天写 PL/SQL 但考试比想象中细 — 触发器的执行顺序(Statement BEFORE → Row BEFORE → DML → Row AFTER → Statement AFTER)出了 3 道。Package 初始化块的执行时机(第一次调用包中任何元素时执行一次)也考了。

Oracle 开发 5 年

银行 Oracle Financials 团队 · 75% · 4 weeks

PL/SQL 的语法和 Java 差异很大 — 没有类和对象的概念,全是过程化编程。游标(Cursor)的概念对我来说最陌生,花了 3 周才理解显式游标 vs 隐式游标 vs REF CURSOR 的使用场景。

Java 开发转 Oracle

后端 3 年,刚接触 PL/SQL · 65% · 10 weeks

Start with the first chapter.

2 free chapters · Full preparation from $29

Explore the learning path