0
我有以下脚本来计算特定所有者的每个表的所有行。它完美的作品。 然而,一些表有一个名为“老字号”和其他不... 我现在的脚本不考虑特定的列,如果此列存在与否:SQL Oracle - 如果一个特定列存在,所有表的不同计数
DECLARE
val NUMBER;
BEGIN
FOR I IN (SELECT table_name FROM all_tables where owner='myowner') LOOP
EXECUTE IMMEDIATE 'SELECT count(*) FROM myowner.' || i.table_name INTO val;
DBMS_OUTPUT.PUT_LINE(i.table_name || ';' || val);
END LOOP;
END;
所以我想什么添加如下: 如果OLD列存在,则在OLD = 0(其中OLD = 0)时将其考虑在内,如果不存在,则在不考虑此列的情况下继续执行“正常”计数。 希望我已经清楚了;)
非常感谢!
一个例子: 让我们说我有2个表:
Table1 - columns A B C with the following data:
1 "test" "Steve"
2 "test2" "George"
Table2 - columns E F G OLD with the following data:
1 "test3" "Martin" 0
2 "test4" "Lucas" 0
3 "test5" "Marley" 0
4 "test6" "Bob" 55
结果应该然后是:
表1; 2 - >有没有 '老' 栏,所以我做一个simples计数 ,其返回2
表2; 3 - >有“老”柱所以我提出的计数,其中OLD = 0 和它返回然后3
咦?不明白。请用数据显示一个例子。 – OldProgrammer
让我们说我有2个表: '表1 - 列ABC数据如下: 1“测试”“史蒂夫” 2“测试2”“乔治” 表2 - 列EFG OLD数据如下: 1“ TEST3" “马丁” 0 2 “TEST4” “卢卡斯” 0 3 “TEST5” “马利” 0 4 “TEST6”, “鲍勃” 55' 结果应该是然后: 表1; 2 - >有被而不是'OLD'列,所以我做了一个简单的计数,返回2 Table2; 3 - >有'OLD'列,所以我做了一个计数,其中OLD = 0,然后返回3 – Thiago
PLease编辑问题并把样本放入问题文本。评论中很难阅读。谢谢。 – OldProgrammer