As duas palavras existem na língua portuguesa, estão corretas e são interjeições. Porém, seus significados são diferentes e devem ser usadas em situações diferentes, sendo pronunciadas com entoações diferentes.
Interjeições são palavras e locuções invariáveis utilizadas para exprimir, de forma concisa, uma sensação, uma emoção, um apelo, um estado de espírito, uma ordem, … Ó é uma interjeição vocativa que indica chamamento ou invocação e oh é uma interjeição exclamativa que indica admiração, espanto, dor, alegria.
A interjeição Ó é usada no discurso direto e forma o vocativo juntamente com o nome ou o adjetivo identificativo do nome que invoca. Embora sua utilização seja facultativa, quando utilizada, esta interjeição confere maior ênfase ao chamamento. Pode ser substituída por outras interjeições vocativas, como: ô e ei.
Exemplos:
Ó filha, venha rápido que a janta está pronta!
Ó Gabriela, espere por mim!
Ó Filipe, pare de fazer bagunça!
A interjeição OH é utilizada isoladamente, sendo necessária uma pausa após sua utilização. Normalmente se utiliza um ponto de exclamação, mas também se pode usar vírgula ou reticências. Quando designa espanto ou admiração, pode ser substituída pelas interjeições: ah, céus, cruz, nossa, puxa, uai, vixe. Quando designa dor, pode ser substituída pelas interjeições: ai, que pena, ui. Quando designa alegria, pode ser substituída pelas interjeições: eh, oba, viva.
Exemplos:
Oh! Que tragédia! Como isto aconteceu?
Oh, não se preocupe! Tudo se resolverá!
Oh! Você está tão bonita!