Lavorando con .Net core 3.1 e Oracle può capitare di imbattersi in questo errore:
ORA-12504: TNS: listener was not given the Service_name in connect_data
Questo capita quando nella stringa di connessione
Text
Data Source=DBProd;User Id=xxx;Password=nnnn;"
si vuole referenziare un alias, DBProd, specificato nel file tnsnames.ora:
Text
DBProd=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=10.1.3.13)
      (PORT=1521)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=racProd12)
    )
  )
Il file tnsnames.ora solitamente si trova in C:\oracle\product\12.2.0\client_1\network\admin\
L'alias era perfettamente valido con il .NET 4.x.

Con la versione .Net core 3.1 deve essere indicato il nome completo nella forma:
Text
<ip>:<port>/<service name>
File: appsettings.json
JSON
{
  "ConnectionStrings": {
    "Oracle": "Data Source=10.1.3.13:1521/racPod12;User Id=xxx;Password=nnnn;"
  },
...
}
Per connettersi a Oracle usare il pacchetto Nuget Oracle.ManagedDataAccess.Core
Potrebbe interessarti anche: