
Oracle SWE OA 的题目会把传统 DSA 和数据库/云服务场景放在一起考。Glassdoor 上近期 Oracle SWE 面试反馈里提到 initial OA、SQL / DSA 以及 OCI 方向的技术追问;Exponent 的 Oracle SWE guide 也强调分布式系统、数据库和 Cloud Services。准备时不要只刷数组题,链表、SQL 聚合、状态机 Debug 都要能写出可跑版本。
OA 資訊
- 岗位:Software Engineer / Software Developer
- 形式:Online Assessment + 技术筛选前置题
- 重点:链表、SQL 聚合、云资源状态 Debug、边界测试
- 策略:先拿稳 DSA 主体代码,再处理空值、溢出、重复事件和数据库字段口径
第一题:链表数字相加
題目描述
给定两个非空链表,链表从高位到低位存储整数的每一位,要求返回两个整数相加后的新链表。输入链表不能原地反转;如果结果最高位产生进位,需要在头部补一个新节点。
解題思路
用两个栈分别保存两个链表的数字,从低位开始弹栈相加。每一轮计算 sum = a + b + carry,新节点值为 sum % 10,然后把新节点接到当前结果头部。最后如果 carry 还存在,再补一个头节点。这样不改输入链表,也能从低位处理进位。边界测试包括长度不同、连续进位、其中一个链表为 0。複雜度:时间 O(n + m),空间 O(n + m)。
第二题:订单与订阅 SQL 聚合
題目描述
给两张表:subscriptions(user_id, plan_id, start_date, end_date) 和 invoices(user_id, amount, paid_at)。要求输出每个 plan 在最近 30 天的付费用户数、总收入,以及至少有一次续费失败后又成功付款的用户数。
解題思路
先用 CTE 过滤最近 30 天的 invoice,再按 user_id 聚合付款金额和最近付款时间。订阅表要按日期判断 invoice 是否落在订阅窗口内,end_date 为空时按仍然有效处理。失败后成功付款可以从事件表或 invoice 状态里做窗口排序:同一用户按时间排序,看到失败状态后再出现成功付款就打标。最后按 plan_id 聚合。写 SQL 时要把 COUNT(DISTINCT user_id) 和普通 COUNT(*) 分开,不然多笔 invoice 会把用户数放大。
第三题:OCI 资源状态 Debug
題目描述
平台给了一段云资源同步代码,目标是把 instance、volume、network attachment 的状态事件合并成资源快照。隐藏测试里出现重复事件、乱序事件和删除后又收到旧更新的情况,原代码会把已删除资源重新写回 active。
解題思路
每个资源维护 resource_id -> snapshot,并记录最后处理的 event_version 或事件时间。新事件到来时先做幂等检查,版本更旧就丢弃;删除事件要写入 tombstone,不能只从 map 里删除,否则旧 update 事件会把资源复活。关联 volume 和 network attachment 时,用 resource type + id 做复合 key,避免不同类型 id 相同。Debug 时先补四组测试:重复 update、delete 后旧事件、同版本不同状态、父资源缺失。修完后再考虑批量输入下的内存清理。
做题过程
Oracle OA 的难点在题面业务词多,但核心还是数据结构和状态维护。第一题要先把链表加法写稳,第二题把 SQL 口径讲清楚,第三题先定位状态被覆盖的路径。提交前用小样例手跑一遍:空订阅、跨天 invoice、删除事件、重复事件。能把这些边界讲出来,比只写主路径更有说服力。
FAQ
Oracle SWE OA 要准备 SQL 吗?
要。Oracle 相关岗位会围绕数据库、云服务和企业软件场景问实现细节,SQL 聚合、窗口函数、join 口径和 NULL 处理都值得提前练。
链表题不能反转时怎么处理?
用栈最直接。也可以递归对齐长度后从尾部回传进位,但栈写法更稳,现场调试成本更低。
Debug 题怎么避免越改越乱?
先补失败样例,再改状态更新规则。Oracle 这类题很看重你是否能控制副作用:幂等、版本判断、删除语义和内存清理都要逐项确认。
参考来源
- Oracle Software Engineer Interview Guide
- Oracle Software Engineer Interview Guide by Exponent
- Oracle Software Engineer Interview Questions on Glassdoor
关于 CSOFFERPREP
进 OA 之前,可以找 CSOFFERPREP 做实时面试助攻和备考辅导。CSOFFERPREP 深耕北美 IT 行业多年,已帮助万余名学生进入全球 500 强企业。导师来自一线大厂资深工程师和面试官,对 Oracle 这类重视数据库和云基础设施的公司的面试套路很熟悉。无论是 OA辅助、OA 辅导、VO 辅助、VO 模拟面试、VO 辅助还是系统设计辅助,都可以获得更有针对性的准备方案:CSOFFERPREP · 服务详情



