我有以下查询引用临时表,我在设置主索引时遇到问题(i_sys_clm)
我收到错误:期待tab2和“。”之间的某些内容。如果我只是在提交保留行上使用数据主索引(i_sys_clm);我收到一个错误,说它含糊不清。
create volatile table Fin as (
select tab1.*
,tab2.i_sys_clm
,tab2.c_sta_clm as "new_status"
,tab2.whse_curr_row_ind
,tab2.whse_load_ts
,(case when tab2.c_sta_clm is null then 'U' else tab1.c_sta_clm end) bom_status
,tab2.c_sta_clm eom_status
from tab1
left outer join tab2
on tab1.i_sys_clm = tab2.i_sys_clm
) with data primary index (tab2.i_sys_clm) on commit preserve rows;
答案 0 :(得分:1)
创建索引时,索引列名称是指正在创建的新表,而不是源表。要在tab2.i_sys_clm
语句中添加索引:别名SELECT
,然后在创建索引时引用该别名。例如:
create volatile table Fin as (
select tab1.*
,tab2.i_sys_clm as "i_sys_clm_2"
,tab2.c_sta_clm as "new_status"
,tab2.whse_curr_row_ind
,tab2.whse_load_ts
,(case when tab2.c_sta_clm is null then 'U' else tab1.c_sta_clm end) bom_status
,tab2.c_sta_clm eom_status
from tab1
left outer join tab2
on tab1.i_sys_clm = tab2.i_sys_clm
) with data primary index (i_sys_clm_2) on commit preserve rows;