Additionally (shooting in the dark). With Oracle there are major differences between local and remote databases and the way you connect to them. The most reproducible way of getting a good connection is to use the Oracle Instant Client.
The most recent version of OIC is 19.6. You require OIC-18 or up to connect to Oracle 12.2 or higher, so if your DBD::Oracle is compiled against old client libraries and you connect to Oracle Server 12.2 or higher, you might be able to connect, but the connection (if you connected) might return weird results.
You can check your client and server version most likely in a working Oracle environment by just starting sqlplus.
$ sqlplus scott/tiger
SQL*Plus: Release 18.104.22.168.0 - Production on Sun Mar 29 10:20:11 2020
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Sun Mar 29 2020 10:18:30 +02:00
Oracle Database 12c Standard Edition Release 22.214.171.124.0 - 64bit Produc
This shows a client version 126.96.36.199.0 connected to a server version 188.8.131.52.0
Also note that Oracle shows both 12.1 and 12.2 as 12c, and the two are really different!
So, even with an old(er) perl, check what OIC you are using and if your DBD::Oracle is compiled against that. If you ar not sure, be sure and just recompile from scratch.
$ wget https://cpan.metacpan.org/authors/id/M/MJ/MJEVANS/DBD-Oracle-1.
$ tar xzf DBD-Oracle-1.80.tar.gz
$ cd DBD-Oracle-1.80
$ perl Makefile.PL
$ make test
$ make install
Why like this and not simply use cpan DBD::Oracle? Well, the described process will show you a lot of feedback and might ask you questions. Doing it interactively makes you (more) aware of the pitfalls.
Enjoy, Have FUN! H.Merijn