我休息一下。我需要检查的地方 如果存在teradata表。如果是,则删除记录 如果否,则按照DDL
创建表问题是......语句正在执行,我想要运行的条件没有成功运行
select * from doc.tablesV
where database = DATABASE_NAME
and table = TABLE_NAME ;
.if activitycount = 1 then .GoTo del_tab ;
.if activitycount = 0 then .GoTo create_tab ;
.LABEL del_tab ;
delete table DATABASE_NAME.TABLE_NAME;
.LABEL create_tab;
create multisite table ...;
在日志中我看到了这条消息 对于第一次运行(当没有表存在时)
activity count =0
.label del_tab
skipped
.label create_tab
Go to create_tab
执行了del_tab命令(虽然它说已跳过) 它失败了(因为没有表格)
条件逻辑中有错误吗?或者BTEQ中的条件逻辑是否有任何限制? 谢谢 彩
答案 0 :(得分:1)
使用count(1)来检查dbc.tables中是否存在记录,而不是活动计数。然后继续你的逻辑。下面的代码应该可以工作。
INSERT INTO table_cnt
(
cnt_var
)
select count(1) from doc.tablesV
where database = DATABASE_NAME
and table = TABLE_NAME ;
.if cnt_var = 1 then .GoTo del_tab ;
.if cnt_var = 0 then .GoTo create_tab ;
.LABEL del_tab ;
delete table DATABASE_NAME.TABLE_NAME;
.LABEL create_tab;
create multisite table ...;