Linuxコマンド「less」を介して送信されているかのように、SELECTクエリによって返されたデータベースレコードのトラバーサルを可能にするsqlplusのトリックまたはコマンドはありますか?
日付順にソートされた膨大な数のレコードを選択して、簡単に閲覧したいと考えています。
具体的には、ログ ファイルをデータベースに置き換えることを検討しています。これには検索用の優れたプロパティのログがありますが、ログを見て奇妙に見えるものを見つけることができなくなるのではないかと心配しています。
SQL の「少ない」に相当するものは、次のように BOTTOM になります。
select BOTTOM 100 *
from log
ただし、Oracle (および他のほとんどのデータベース) はこの機能をサポートしていません。そのため、代わりに次を使用できます。
SELECT top 100 *
from log
order by 1 desc
(最初の列として自動インクリメント logid を使用することをお勧めします。これにより、上記のクエリは常に機能します。それ以外の場合は、logid desc で明示的に並べ替えるか、logdatetime フィールドなどの他のフィールドで並べ替える必要があります。)
これは、システムに応じて、数十万または数百万行まで機能します。たとえば、去年の 9 月には順調に進んでいた処理ログがあり、現在は約 90,000 行あり、SQL Server はそこから必要なデータを問題なくフェッチしています。
したがって、毎日数十または数百の行をログに追加する場合は、SQL で問題ありません。数万行を追加する場合は、より洗練されたアプローチが必要になる場合があります。その場合、ログ履歴テーブルと現在のログ テーブルを用意し、定期的に現在のテーブルを履歴にダンプすることをお勧めします。
言い忘れました。SQL でログを保持することには、信じられないほどの利点があります。レポートの柔軟性、「昨日何が起こったのか」を簡単に確認できる機能、および要約のための優れたプラットフォームが提供されます。