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