some time ago I blogged on how to list the installed patches for an oracle database. if you are on 12c there is another possibility:
SQL> select dbms_qopatch.get_opatch_lsinventory from dual; OracleHome-94047000-c49c-4d73-b13c-d252248d3c09 oracle_home /opt/oracle/oraInventory false oneoff /opt/oracle/product/base/220.127.116.11 oracle_home ....
this returns a xml of the opatch inventory right out of the database. another nice little feature introduced with 12c.
if you check the documentation you’ll notice that there are some other functions you might use to query the optach inventory.