1. 程式人生 > >使用一個SQL獲取所有PeopleSoft表的計數

使用一個SQL獲取所有PeopleSoft表的計數

在對PeopleSoft應用程式執行升級或應用維護時,您可能希望獲得所有PeopleSoft表的行數。有幾種方法我們將在下面討論,最後,我認為這是最簡單和最有效的方法。

選項1:執行UPGCOUNT AE

UPGCOUNT是一個交付的應用程式引擎程式,可以通過應用程式設計器或命令列執行。這個程式將輸出一個包含所有PeopleSoft表計數的列表

選項2:從DBA_TABLE獲取計數(在Oracle中)

DBA_TABLES包含Oracle資料庫中所有表的行數。您可以在SQL下面執行以獲取訪問ID或所有者ID為SYSADM的PeopleSoft表的行計數。如果PeopleSoft所有者ID在您的情況下不同,請相應更改所有者的值。

SELECT TABLE_NAME, NUM_ROWS FROM DBA_TABLES WHERE OWNER='SYSADM';

上面的SQL將給出SYSADM模式中所有表的行數。但這個數字可能並不總是正確的。此表中的值是根據是否更新了統計資訊來填充的。即使執行更新統計,計數也可能與實際計數不同。(嘗試在幾個表上執行count(*)並進行比較)。

選項3(最佳選項):SQL使用DBA_TABLE和COUNT(*)為您提供正確的輸出。

我們發現這是最好的選擇。這個SQL將只從DBA_TABLES獲取表名,然後在所有PeopleSoft表上執行count(*)。這是獲得實際行數的最佳選擇。

select table_name, to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from '||table_name)),'/ROWSET/ROW/C')) count from DBA_tables where owner='SYSADM';

請讓我們知道哪種選擇最適合您,或者如果您有任何其他有效的方法來獲得PeopleSoft表的計數。