Oracles are middlemen to get trusted data from off-chain. There are different oracle providers, each has a different mechanism to validate the data is valid.
For example, chainlink is an oracle provider. Chainlink itself is a blockchain and has nodes to get the data. Each node uses its own smart contracts to get data. To run a chainlink node, you have to lock up some funds so if you cheat you will lose your funds.
Once each node gets the data, the chainlink blockchain has an algorithm to detect if the data is reliable. Let's say you need to get the temperature of a location. 10 chainlink nodes provided values between 40F and 43F but 5 of them provided values between 50F and 55F. So chainlink algorithm will discard those 5 nodes, and will use the average of 10 nodes values between 40F and 43F. (It is algorithm more complex and basically what it does.)
If you check the chainling oracle smart contract, function names are getRoundData
or latestRoundData
indicating that they do not get the data from a single source.