合計数を計算するにはどうすればよいですか。テーブル内のレコードの数? DB 内のすべてのテーブル名を no とともに表示したい。各テーブルのレコード数
8834 次
4 に答える
5
レコード数を取得する方法は、計画しているアプリケーションによって異なります。
私たちの DBA は進行状況ユーティリティを使用するだけです。Unix では /usr/dlc/bin/proutil -C dbanalys またはいくつかのバリエーションでデータベース情報を取得し、それをファイルにダンプします。
進行状況自体からスキーマ情報を取得するには、VST テーブルを使用できます。特に特定のデータベース内では、_file テーブルを使用してすべてのテーブル名を取得できます。
テーブル名を取得したら、クエリを使用してテーブル内のレコード数を取得できます。レコード数について特定のテーブルをクエリする最速の方法は、事前選択を使用することです。
これには、動的バッファとクエリを使用する必要があります。
したがって、次のようなことができます。
CREATE WIDGET-POOL.
DEF VAR h_predicate AS CHAR NO-UNDO.
DEF VAR h_qry AS HANDLE NO-UNDO.
DEF VAR h_buffer AS HANDLE NO-UNDO.
FOR EACH _file NO-LOCK:
h_predicate = "PRESELECT EACH " + _file._file-name + " NO-LOCK".
CREATE BUFFER h_buffer FOR TABLE _file._file-name .
CREATE QUERY h_qry.
h_qry:SET-BUFFERS( h_buffer ).
h_qry:QUERY-PREPARE( h_predicate ).
h_qry:QUERY-OPEN().
DISP _file._file-name h_qry:NUM-RESULTS.
DELETE OBJECT h_qry.
DELETE OBJECT h_buffer.
END.
于 2009-08-21T16:20:46.670 に答える
1
簡単なもの:
Select count(*) from tablename.
もう少し複雑:
Def var i as int.
for each table:
i = i + 1.
end.
display i.
より複雑な答えについては、他のものを手に入れました。
于 2013-08-30T14:05:43.170 に答える