繁体   English   中英

Oracle - PL/SQL Developer 在 PIVOT 查询中显示列名

[英]Oracle - PL/SQL Developer shows column name in a PIVOT query

在 PLSQL Developer 中,当列名长度为 9 个字符时,透视查询是可以的,但当长度为 10 个字符时会出现乱码。 在此处输入图像描述

数据库和环境变量的字符集是AMERICAN_AMERICA.AL32UTF8 PLSQL Developer 版本是14.0.5.1986(64bit) ,Oracle 版本是11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 是因为超出了 oracle 的列名长度限制吗? 为什么没有弹出异常或错误?

在版本 12.2 更改为 128 之前,限制为 30 个字节。 https://asktom.oracle.com/pls/apex/f?p=100:11:::::P11_QUESTION_ID:9522337900346184952
另外,汉字是多字节字符。 尝试为透视列提供较短的别名以避免该问题。 您可以使用以下方法检测多字节字符:


WHERE Length(column) < LengthB(column)

问候,

您可以给列一个别名:

SELECT *
FROM   (SELECT 'your string' AS name FROM DUAL)
PIVOT (
  COUNT(1)
  FOR name IN (
    'your string' AS alias1,
    'other string' AS alias2
  )
)

或者,如果您想使用非 ASCII 别名,请使用带引号的标识符:

SELECT *
FROM   (SELECT 'your string' AS name FROM DUAL)
PIVOT (
  COUNT(1)
  FOR name IN (
    'your string' AS "non-ASCII alias1",
    'other string' AS "non-ASCII alias2"
  )
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM