清泛IT社区App Inventor 2 中文社区

搜索

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.72

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通会员送SVIPApp Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 855|回复: 0
打印 上一主题 下一主题

nvarchar和varchar相互转换、联合查询

  • TA的每日心情
    开心
    2024-03-14 20:36
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    70

    主题

    117

    帖子

    1405

    积分

    AppInventor2 SVIP会员

    积分
    1405
    跳转到指定楼层
    楼主
    发表于 2015-02-27 16:37:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 zqp2013 于 2015-2-27 16:42 编辑

    场景:联合查询(union all)Oracle两张表,同一组字段的数据类型不一致,分别是nvarchar和varchar。
    这时联合查询报错如下:ora12704:字符集不匹配。

    解决方法:需要对数据类型进行转换。
    Specifying the USING CHAR_CS argument converts text into the database character set. The output datatype is VARCHAR2.
    Specifying the USING NCHAR_CS argument converts text into the national character set. The output datatype is NVARCHAR2.

    (A表字段c_xxx:varchar,B表c_xxx:nvarchar)
    select translate(c_xxx USING NCHAR_CS) from A
    union all
    select c_xxx from B

    或者

    select c_xxx from A
    union all
    select translate(c_xxx USING CHAR_CS) from B

    注意:translate函数括号中没有逗号。
    1、varchar:
                  可变长度的  非Unicode  数据,最长为8,000个字符。   
    2、nvarchar:
                  可变长度的   Unicode    数据,最长为4,000个字符。





    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-09-20 16:35 , Processed in 0.019455 second(s), 31 queries .