Oracle Database / SQL & PL/SQL Errors
ORA-01422: repair an exact fetch that returned too many rows
A PL/SQL exact fetch assumes a single row. A broader predicate or duplicate business key can violate that assumption after data growth.
Environment and inputs: Oracle Database 19c baseline · SQL*Plus-compatible SQL unless RMAN, DGMGRL, ADRCI or a host shell is specified. Check release, patch level, edition and container first.
Start with this diagnostic
Use the stated SQL, RMAN, DGMGRL or host shell and replace sample names with approved targets. DBA and V$ views need authorized catalog access in the correct container. Do not grant broad privileges for an example.
SELECT line, text FROM user_source WHERE name = 'APP_ORDER_API' AND type = 'PACKAGE BODY' ORDER BY line;
Read the result
The source helps locate the SELECT INTO identified by the runtime backtrace. It does not identify which input or rows caused the failure.
Resolve and verify
Reproduce with sanitized binds and count the candidate rows. Enforce the intended unique rule or use an explicit multirow processing design.
Operational precautions
Do not hide the error by selecting the first row unless that selection order is an approved business rule.