oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB

本文主要是介绍oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在oracle中创建视图的时候,语句中包含有clob类型的字段。视图创建语句大概如下:

CREATE OR REPLACE FORCE VIEW "T_PROJECTS" ("ID", "NAME","DSC_INFO") AS
(
select a.id,a.name,'' DSC_INFO from t_project_a a
union
select b.id,b.name,b.dsc_info from t_project_b b
union
select c.id,c.name,c.dsc_info from t_project_c c
);
但在执行的时候却报错了,错误为:

数据类型不一致:应为-,但却获得CLOB
检查以后发现,dsc_info字段为clob类型,起初以为是clob类型初始化的问题,于是把语句改为

CREATE OR REPLACE FORCE VIEW "T_PROJECTS" ("ID", "NAME","DSC_INFO") AS
(
select a.id,a.name,empty_clob() DSC_INFO from t_project_a a
union
select b.id,b.name,b.dsc_info from t_project_b b
union
select c.id,c.name,c.dsc_info from t_project_c c
);
执行仍然报错。然后查资料:oracle中clob实际上是使用char来存储数据的,所以在对clob字段进行查询时为了保证正确应该对字段进行转换,转换成char,并给字段增加别名。转换成char的函数为:to_char(clob字段名)。最后,sql改为:

CREATE OR REPLACE FORCE VIEW "T_PROJECTS" ("ID", "NAME","DSC_INFO") AS
(
select a.id,a.name,'' DSC_INFO from t_project_a a
union
select b.id,b.name,to_char(b.dsc_info) DSC_INFO from t_project_b b
union
select c.id,c.name,to_char(c.dsc_info) DSC_INFO from t_project_c c
);
执行成功,以作记录。


这篇关于oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978206

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe