3

合計数を計算するにはどうすればよいですか。テーブル内のレコードの数? DB 内のすべてのテーブル名を no とともに表示したい。各テーブルのレコード数

4

4 に答える 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 に答える