1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > oracle创建视图类型为日期 oracle创建视图包含clob字段 报错:数据类型不一致:应为-

oracle创建视图类型为日期 oracle创建视图包含clob字段 报错:数据类型不一致:应为-

时间:2018-07-22 02:18:11

相关推荐

oracle创建视图类型为日期 oracle创建视图包含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

);

执行成功,以作记录。

————————————————

版权声明:本文为CSDN博主「southArbor」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:/u010295735/article/details/79215441

标签:INFO,name,clob,数据类型,视图,DSC,project,报错,id

来源: /zying3/p/11866622.html

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。