原因:(''默认的是VARCHAR2,与NVARCHAR2不匹配)

表1有字段:LEGAL_PERSON    NVARCHAR2(32)

表2无此字段 union时用''代替

解决办法:

使用cast()将字符集转换为相同

--oc.legal_person,     -- 法人
cast(oc.legal_person as NVARCHAR2(32)) legal_person,  -- 法人

--'' legal_person,     -- 法人
cast('' as NVARCHAR2(32)) legal_person,  -- 法人

成功实例

--“组织管理”视图oms_company_department_v
create or replace view oms_company_department_v as
select
a.ORGANIZATION_ID,
a.ORGANIZATION_CODE,
a.ORGANIZATION_NAME,
a.ORGANIZATION_PARENT_ID,
a.ORGANIZATION_PARENT_NAME,
a.ORGANIZATION_TYPE,
a.ENABLED_FLAG,
a.legal_person,
a.customed,
a.parent_id_path,
a.parent_name_path,
a.depts_company,
(select count(1)from
(select oc.company_id organization_id,
oc.parent_id organization_parent_id -- 父ID
                  from oms_company oc
                 where oc.enabled_flag = 1
                union all
                select od.department_id organization_id, -- ID
                       od.parent_id organization_parent_id -- 父ID
                  from oms_department od
                 where od.enabled_flag = 1) b
         where a.organization_id = b.organization_parent_id) has_child
  from (select oc.company_id organization_id, -- ID
               oc.company_code organization_code, -- 编码
               oc.company_name organization_name, -- 名称
               oc.parent_id organization_parent_id, -- 父ID
               (select t.company_name from oms_company t where t.company_id=oc.parent_id) organization_parent_name, -- 父名称
               1 organization_type, -- 类型  1:代表单位  0 :代表部门
               --oc.legal_person,     -- 法人
               cast(oc.legal_person as NVARCHAR2(32)) legal_person,  -- 法人
               oc.enabled_flag,
               oc.customed,
               oc.parent_id_path,
               oc.parent_name_path,
               null depts_company
          from oms_company oc
         where oc.enabled_flag = 1
        union all
        select od.department_id organization_id, -- ID
               od.department_code organization_code, -- 编码
               od.department_name organization_name, -- 名称
               od.parent_id organization_parent_id, -- 父ID
               (select t.department_name from oms_department t where t.department_id=od.parent_id) organization_parent_name, -- 父名称或者其上级单位名称
               0 organization_type, -- 类型 1 :代表单位 0 :代表部门
               --'' legal_person,     -- 法人
               cast('' as NVARCHAR2(32)) legal_person,  -- 法人
               od.enabled_flag,
               od.customed,
               od.parent_id_path,
               od.parent_name_path,
               od.company_id depts_company
          from oms_department od
         where od.enabled_flag = 1) a;

参考文献:

https://blog.csdn.net/baidu_37107022/article/details/81259319

Oracle 创建视图View 报错“ORA-12704: character set mismatch” 使用union语句相关推荐

  1. MySQL查询视图View报错

    项目场景: 在mysql客户端workbench中查询视图View报错. 问题描述 View references invalid table(s) or column(s) or function( ...

  2. 创建oracle视图的权限不足,Oracle创建视图view权限不足问题剖析

    问题: 使用USER1等其他用户登录Oracle以后,创建视图,提示"权限不够",怎么解决? 这是因为USER1这个帐户目前没有创建视图的权限. 解决方法为: 首先使用system ...

  3. Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路

    点击上方"蓝字" 关注我们,享更多干货! ASM扩容本来是件很简单的事,当ASM磁盘准备好之后,直接一条命令就会添加上.但是也会有异常情况,最近就碰到Oracle 19c在扩容时报 ...

  4. Oracle创建视图view权限不足

    之前导入数据库的时候会报错,查了一下说是因为创建视图,权限不够的问题.但是我都授过权了还是不行,后来才发现是因为a用户创建视图语句的语句了包含了b用户中的表,所以才没有权限. 在a创建视图的时候,有b ...

  5. Oracle 创建视图view 权限不足,无法创建的解决办法

    四步操作: 1.系统管理员登录数据库(用命令行) 口令输入密码时,密码不会显示,但实际存在. 假设给用户A授予权限 2.授予创建视图权限 grant create view to A; 3.授予查询权 ...

  6. oracle视图如何创建索引,ORACLE 创建视图索引序列

    /* 视图View 视图是从若干基本表和(或)其他视图构造出来的表 视图存放的都是查询语句,并没有真实的数据 虚表 作用 限制对数据的操作 复杂查询变简单 提供相同数据的不同显示 UNION ALL ...

  7. Oracle技术分享 创建外键报错ORA-00906

    问题描述:给表创建外键报错ORA-00906,具体过程如下: 数据库:oracle 11.2.0.464位 scott@ORCL2022-10-18 19:10:40> selectindex_ ...

  8. oracle select with read only,oracle创建视图的一些总结:包括with check option和with read only...

    oracle创建视图的一些总结: create [or replace][force | noforce] view [user.] viewName (column [,column2]...) a ...

  9. Oracle导入TYPE对象报错ORA-02304

    Oracle导入TYPE对象报错ORA-02304 Type是我们经常使用的数据库对象结构.我们在实际中,可以单独定义type类型,之后在PL/SQL代码或者数据表中使用. 在一个偶然的机会让笔者发现 ...

最新文章

  1. http://www.cnblogs.com/youfan/articles/3216816.html
  2. linux下ELK搭建好之后配置sentinl插件,进行邮件告警
  3. Git安装及密钥的生成并上传本地文件到GitHub上
  4. 华中科技大学计算机系统基础实验3报告,华中科技大学计算机系统基础实验报告.doc...
  5. 重新学习c++--理解引用、智能指针、虚函数、模板、容器
  6. sqlserver 获取所有表的字段类型等信息
  7. 经典推荐:08年草根站长现状360度总结分析
  8. mysql创建视图的sql语句_MySQL数据库创建视图
  9. AtCoder - ABC 168 - E(数学推理)
  10. ISAPI_Rewrite
  11. html文字浮雕效果不起作用,CSS3实现文字浮雕效果,镂刻效果,火焰文字
  12. 如何使用电脑将png转ico格式?赶快跟着小编学起来
  13. 程序员容易的疾病之干眼症(治疗篇)
  14. 终结解决方案之最:struts2整合jasperreport再现图片无法显示
  15. 设计模式 | 装饰者模式及典型应用
  16. 【云原生 | Envoy 系列】--Envoy Http Ingress,Egress,front Proxy静态配置
  17. 《2022,自我增值的7个好习惯》读书笔记
  18. 20200213ubuntu20.04下的笔记本USB摄像头的相关资料
  19. k-means用于图像的颜色聚类
  20. C++ 数据存储类型

热门文章

  1. OpenGLES/OpenGL 区别
  2. uwp连接mysql数据库_在UWP中使用SQLite数据库,支持加密
  3. 华为ws832虚拟服务器,玩的就是真实力!华为路由WS832实测体验
  4. 网页生成了过多的重定向
  5. 如何实现室内精准定位?——UWB定位
  6. C语言实现Linux聊天工具
  7. backtrader.broker Commission外汇点差/保证金/杠杆的设置(技巧)
  8. kuka机器人外部轴配置方法
  9. android播放视频过程cpu占用高,Android App高CPU使用率和电池消耗
  10. 【FXCG】今日市场分析