A contract cannot see a market price by itself; the chain only knows its own state. An oracle bridges that gap by publishing values on-chain, either pushed at intervals and on large moves, or pulled by a transaction that carries a signed price with it.
Almost every defi primitive depends on one. A lending market values collateral through an oracle, a perpetual venue computes its index-price from one, and a synthetic asset is nothing but an oracle plus collateral. The oracle is therefore the single most consequential dependency in most protocols.
Two properties matter: where the numbers come from, and how hard they are to move. A feed aggregating many deep venues is expensive to distort; a feed reading the spot price of one thin liquidity-pool can be pushed with a flash-loan in a single block. See oracle-manipulation.
Related: oracle-manipulation, price-feed-aggregation, twap-oracle, stale-price-risk