Metalink 207303.1 is the Client/ Server Interoperability Matrix which will be the definitive documentation. Since the express edition of 10g is based on Oracle 10.2, a database link to an 8.1.7 database should be supported. Database links to earlier versions of 8i (8.1.5 or 8.1.6) are not supported from a 10.2 database. For general sanity, I'd strongly suggest that the 8i side be running at least the 8.1.7.4 patchset but that isn't strictly required.
As @ik_zelf mentioned, your PATH variable will need to include the "bin" directory of your Oracle software install. This will allow you to execute commonly-needed commands/utilities like "sqlplus" and "lsnrctl" without changing directories. This is typically $ORACLE_HOME/bin
Your TNS_ADMIN variable needs to be set in a similar matter, pointing to the location of your tnsnames.ora, listener.ora, etc. By default, SQL Plus checks this directory (defined by TNS_ADMIN) for tnsnames.ora. This is typically $ORACLE_HOME/network/admin
If you want to connect to your database via TNS, your tnsnames.ora file (assuming a ORACLE_SID of "myDatabase", a host of "myHostname" and the default port) would look something like this:
myDatabase =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = myDatabase)))
This would allow you to connect locally simply by doing the following from a command line:
sqlplus username/password@myDatabase
Of course, as SQL Plus looks for the tnsnames.ora file in the location defined by $TNS_ADMIN, this will only function locally. To access this database via TNS (Transparent Network Substrate) from a remote machine, you would have to install the Oracle client and ensure that the TNS entry for myDatabase (as described above) is included in the remote machine's tnsnames.ora file as well.
Best Answer
Better solution would be to install docker or virtualbox and run the OracleXe image within one of those containers. Once docker is running you can easily launch a new OracleXe container with two commands. Already configured to allow easy access via SQLDeveloper. I tested my own steps by downloading the docker toolbox, installing and running the OracleXe image. Everything started up without an issue on my desktop. If all possible I would run this on a droplet at DigitalOcean since Oracle is a hog on space 2.3G!
OracleXe container can be found here: OracleXe Docker Container Docker Install on Mac: Docker Install