Ufficio:
SERVER01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.9)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
SERVER02 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.9.9)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
Casa:
# tnsnames.ora Network Configuration File: C:\Oracle\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-5KC4KA6)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
se non ho capito male:
oracle è installato in locale sul tuo pc di casa
in ufficio oracle è installato in 192.168.7.9 (oppure 192.168.9.9)
quando lavori sul tuo pc, la tua applicazione tenta la connessione con "XE" mentre nel tuo ufficio trovo dichiarati "SERVER01" e "SERVER02".
Su tutte e 3 le configurazioni c'è l'indicazione "(SERVICE_NAME = XE)" ma questo è per la comunicazione col listener e per ora non credo che influisca (in oracle ogni DB normalmente ha un suo servizio).
Quello che puoi provare a fare è di modificare TNSNAME.ORA nel client in ufficio includendo anche la seguente dichiarazione (posto che oracle sia in 192.168.7.9):
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.9)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
in conclusione non credo che il problema sia con oci.dll ma che si tratti di un problema di configurazione per far in modo che il client trovi il server
spero che la soluzione quì sopra funzioni al primo colpo, in alternativa devi provare altre configurazioni
ma il tuo problema è in TNSNAMES.ORA o nel listener