在SQL Developer中,表列长度为100,但视图列长度为150
我使用的是SQL Developer 19.1.0。以及Oracle数据库12c标准版12.1.0.2.0-64位产品 我已经在表上创建了一个视图。在SQL Developer中,当我双击该表时,它将列的在SQL Developer中,表列长度为100,但视图列长度为150,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我使用的是SQL Developer 19.1.0。以及Oracle数据库12c标准版12.1.0.2.0-64位产品 我已经在表上创建了一个视图。在SQL Developer中,当我双击该表时,它将列的数据类型显示为nvarhar2(100个字符),但当我双击视图时,它将数据类型显示为nvarhar2(150个字符) 类似地,视图中所有nvarhar2列的长度显示为表列长度的1.5倍 原因是什么?如何解决 编辑-添加以下DB参数 NLS_RDBMS_VERSION 12.1
数据类型显示为nvarhar2(100个字符)
,但当我双击视图时,它将数据类型显示为nvarhar2(150个字符)
类似地,视图中所有nvarhar2
列的长度显示为表列长度的1.5倍
原因是什么?如何解决
编辑-添加以下DB参数
NLS_RDBMS_VERSION 12.1.0.2.0
NLS_NCHAR_CONV_EXCP FALSE
NLS_LENGTH_SEMANTICS BYTE
NLS_COMP BINARY
NLS_DUAL_CURRENCY $
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_SORT BINARY
NLS_DATE_LANGUAGE AMERICAN
NLS_DATE_FORMAT DD-MON-RR
NLS_CALENDAR GREGORIAN
NLS_NUMERIC_CHARACTERS .,
NLS_NCHAR_CHARACTERSET UTF8
NLS_CHARACTERSET AL32UTF8
NLS_ISO_CURRENCY AMERICA
NLS_CURRENCY $
NLS_TERRITORY AMERICA
NLS_LANGUAGE AMERICAN
当我使用用户描述命令来查看表和视图时,我得到了NVARCHAR2(150)请包含用于创建视图的CREATE view
语句。在SQL Developer 19.2中,我没有看到这一点。通过一个非常基本的视图(create view…as select*from…
),该表显示了NVARCHAR2(100个字符)
,该视图显示了带有“CHAR”的NVARCHAR2(100)
。可能是早期(或更高版本!)版本错误地调整了显示的数字,这是一个显示问题,而不是影响实际数据的问题。您使用的是哪个版本,您的数据库和国家字符集是什么?如果从工作表或SQL*Plus中描述表和视图,您会看到什么?当我使用DESC命令时,表和视图都会得到NVARCHAR2(150)。NLS\u NCHAR\u CHARACTERSET=UTF8 NLS\u CHARACTERSET=AL32UTF8在问题中添加了更多细节