您的问题似乎与您在自己的笔记本电脑上安装了 Oracle XE 数据库版本的问题有关。
当您运行 sqlplus 或任何其他 OCI 工具连接到 Oracle 时,无论数据库是远程主机还是在云中,sqlplus 都会评估 TNS_ADMIN 环境变量以识别您的 sqlnet 和 tnsnames 文件所在的位置。如果没有变量,它将使用您的主要 Oracle 注册表项的默认值,该值肯定指向您的 XE 版本,因为它是以前安装的。
当您收到ORA-12154: TNS:could not resolve the connect identifier specified时,您的会话未在配置文件中找到任何有关目标的信息,可能是因为会话正在评估您的 XE 安装中的文件
尝试执行以下操作
- 将 Oracle Cloud 提供的钱包文件复制到与 XE 安装不同的位置。
- 将 sqlplus cmd 会话中的 TNS_ADMIN 变量导出到这个新路径
- 使用钱包运行 sqlplus
示例(我相信您做了第 1 点和第 2 点)
- 在您的计算机上安装 Oracle 客户端软件。使用完整的 Oracle Database Client 11.2.0.4(或更高版本)或 Oracle Instant Client 12.1.0.2(或更高版本)。Instant Client 包含建立 Oracle 调用接口连接所需的最少软件。Instant Client 12.1.0.2(或更高版本)对于大多数应用程序来说已经足够了。
- 下载客户端凭据并将文件存储在客户端计算机上的安全文件夹中。请参阅下载客户端凭据(钱包)。
- 将凭据文件解压缩/解压缩到客户端计算机上的安全文件夹中。
- 在解压凭证文件的文件夹中编辑 sqlnet.ora 文件,将“?/network/admin”替换为包含客户端凭证的文件夹的名称。
例子
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/my_new_path")))
SSL_SERVER_DN_MATCH=yes
cmd> set tns_admin = my_new_path
cmd> sqlplus /@yourtnsentry
我不知道您的云数据库是否使用公共 IP 地址,或者您是否想使用 SSH 隧道连接到数据库。看看这里,因为那时你可能想使用 SQLcl ( Sql Developer Command Line )
https://docs.cloud.oracle.com/en-us/iaas/Content/Database/Tasks/connectingDB.htm