Oracle has some obscure legacy regarding connection to a database.
The easiest way is to just present it with all the required parameters: put all the things betwen () in the place of the "sid" part.
I don't know how go-oci8's ParseDSN will treat that, though.
The second possibility is to find out where should your tnsnames.ora be. Maybe try to set TNS_ADMIN env. var to its directory.
(A side note: set your NLS_LANG env to something.AL32UTF8 (i.e. american_america.AL32UTF8) if you connect to a database which is not AL32UTF8 - in Go you need UTF-8 strings)
A third possibility is to try my goracle driver [1] instead of go-oci8 - I know that accepts such connection strings at the "sid" part (user/passw@sid).
(This library sets the NLS_LANG env var for you, right before initializing the OCI lib - I've tried to convince Matt to do the same in go-oci8, but with no avail.)
[1]:
github.com/tgulacsi/goracle/godrv