Physcial RAM+SWAP=Available RAM
The title is simplistic, but James has it right. The system uses RAM to hold data. When RAM is full, and on more efficient systems when RAM isn't getting used, it is swapped to disk if there is space available.
How did you analyze your RAM usage? Tools like 'top' and 'sar' on a Unix box at the time of the error should have showed a lot of disk activity (swapping) and 0 available RAM.
If your database appears to have a lot of RAM available then you might try reducing some of your init parameters. It maybe that the database has enough RAM, but that the OS is starved.
Couldn't do more analysis without the details.
Might be useful to see how you troubleshot the problem if you do another article.