【发布时间】:2016-10-29 20:00:39
【问题描述】:
让我解释一下我为什么要这样做...我已经构建了一个 Tableau 仪表板,它允许用户按架构、对象类型(表、视图、物化视图)浏览/搜索我们仓库中的所有表和列) 等。我想添加一列,从每个表的每一列中提取数据样本 - 这也完成了,但是有这个问题......:
结果列由不同类型的数据(varchar2、LONG 等)组成。除了 LONG 之外,我基本上可以让每种类型的数据都符合单一数据类型 - 它不允许我将其转换为与其他所有内容兼容的任何其他内容(如果这有意义的话......)。我只需要所有数据类型共存于一个列中。我已经尝试了很多不同的事情,并且已经阅读了大约一个星期的主题,但听起来好像无法完成,但根据我的经验,总有一种方法......我想我会在承认失败之前与大师在这里确认一下。
我尝试过的事情之一:
--Here, from two different tables, I'm pulling a single piece of data from a single column and attempting to merge into a single column called SAMPLE_DATA
--OTHER is LONG data type
--ORGN_NME is VARCHAR2 data type
select 'PLAN','OTHER', cast(substr(OTHER,1,2) as varchar2(4000)) as SAMPLE_DATA from sde.PLAN union all
select 'BUS_ORGN','ORGN_NME', cast(substr(ORGN_NME,1,2) as varchar2(4000)) as SAMPLE_DATA from sde.BUS_ORGN;
产生的错误:
Lookup Error
ORA-00932: inconsistent datatypes: expected CHAR got LONG
我怎样才能做到这一点?
提前致谢
【问题讨论】:
-
你看过这个link吗?
-
你能处理 CLOB 吗?如果是这样,您可以将其全部转换为 XML。