-1

我正在加入 2 个大型查询(155 列)'union all'。通过创建每个查询的测试视图并并排比较名称和数据类型,我已经验证了联合的每一侧的列名和数据类型是相同的。

错误消息指向看似随机的行和列,但我仔细检查了这些列以确保数据类型(varchar2(1300))相同。

有谁知道还有哪些其他因素可能引发此错误?跑步Oracle 12c.

4

1 回答 1

3

既然你已经创建了这两个测试视图,为什么不让 oracle 比较列类型呢?

SELECT column_id, data_type FROM user_tab_cols
  WHERE table_name='MYVIEW1'
MINUS
SELECT column_id, data_type FROM user_tab_cols
  WHERE table_name='MYVIEW2';

这应该很快将您指向冲突的列。(必要时交换 MYVIEW1 和 MYVIEW2)

于 2017-07-12T12:24:33.197 回答