使用 sqlplus 对 Oracle 数据库的查询返回一个空的单字符宽列

问题描述 投票:0回答:0

在 Oracle 11_2 数据库中,我试图对表 client_info 运行查询。在 SQL Developer 中,我看到包含前 10 个客户端名称的完整列。当我尝试在 WSL 内的本地计算机或远程 Linux 服务器上的 sqlplus 中运行相同的查询时,结果返回为单个字符宽的列,行中只有空白。

我试过 Oracle sqlplus 版本 11_2、12_2 和 21_10。

我还使用 11_2 在 citrix 实例上的 sqlplus 上尝试了相同的查询,确实显示了结果。

我检查了 NLS_CHARACTERSET 为 US7ASCII。

我猜这与编码有关,我的终端设置有些错误,但老实说我没有找到什么。我也在 python 和 perl 脚本中尝试了相同的查询,但也没有返回结果。

桌子设置:

CREATE TABLE client_info (
    client_id    NUMBER NOT NULL,
    client_name  VARCHAR2(35 BYTE),
    account_type VARCHAR2(10 BYTE)
)

查询失败:

SELECT client_name FROM client_info WHERE account_type = 'IMPORTANT' AND rownum <= 10;

输出:

C
-











10 rows selected.

SQL>

工作输出:

CUSTOMER_NM
-----------------------------------
CL0276
CL0318
CL0317
CL0123
CL0105
CL0104
CL0128
CL0121
CL0116
CL0038

10 rows selected.

SQL>

我的 wsl 实例和 linux 系统显示以下区域设置:

locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

如有任何关于下一步检查的建议,我们将不胜感激。

linux oracle11g oracle-sqldeveloper sqlplus
© www.soinside.com 2019 - 2024. All rights reserved.