投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/2/26 18:01:17
tnsnames.ora の読み取りに失敗しているのかもしれませんね。
TNS を使わず、接続文字列を直接埋め込んだ場合はどうなりますか?
http://starcat2014.blog.fc2.com/blog-entry-2.html

上記だと冗長すぎる場合は、簡易接続ネーミング・メソッド表記の
 Dim dataSource As String = host & ":" & port & "/" & serviceName
程度でも良いかと思います。
https://docs.oracle.com/cd/F19136_01/netag/configuring-naming-methods.html#GUID-E5B6BEB9-70BB-46FA-9F6C-BE575CD41B21


もしも直接埋め込んだ場合は接続できて、TNS 指定だと失敗する場合、
実行環境における別の tnsnames.ora を読み込んでいた…というケースもあります。
(x86/x64 とか 11g/19c とかで、複数の ORACLE_HOME があったパターンなど)
https://forums.oracle.com/ords/apexds/post/ora-12504-error-with-odp-net-4713

複数のクライアントがある場合は、tnsnames.ora をシンボリックリンクにして、フォルダ間で単一ファイルとしてしまうか、
あるいは環境変数 TNS_ADMIN 指定で tnsnames.ora の場所を明示するという手もあるかと。