From 11g onwards Oraclr releasing patches without downtime requirement for some patches.
Opatch command line has now an additional options called query and _is_online_patch which can be used to determine whether the patch can apply online or not.
XXXXXXXX:TEST:UAT $ opatch query -is_online_patch /home/users/oracle/9877980 -invptrloc /u01/in/TEST/oracle/db/11.2.0.2/oraInst.loc
Invoking OPatch 11.2.0.1.1Oracle Interim Patch Installer version 11.2.0.1.1
Copyright (c) 2009, Oracle Corporation. All rights reserved.Oracle Home : /u01/in/TEST/oracle/db/11.2.0.2
Central Inventory : /u01/in/TEST/oracle/orainventory
from : /u01/in/TEST/oracle/db/11.2.0.2/oraInst.loc
OPatch version : 11.2.0.1.1
OUI version : 11.2.0.2.0
OUI location : /u01/in/TEST/oracle/db/11.2.0.2/oui
Log file location : /u01/in/TEST/oracle/db/11.2.0.2/cfgtoollogs/opatch/opatch2012-11-07_02-54-03AM.logPatch history file: /u01/in/TEST/oracle/db/11.2.0.2/cfgtoollogs/opatch/opatch_history.txt
--------------------------------------------------------------------------------
Patch is an online patch: falseOPatch succeeded.
XXXXXXXXX:TEST:UAT $
Here you can see the patch is offline as its false. You cannot apply online.
If you have a patch which is true for online patch you can apply the same using apply online option in opatch.
Opatch apply online
Hope this helps
Thanks
Geek DBA
Follow Me!!!