0

SQL Server テーブルのデータからテキスト ファイルを作成する必要があります。そのためのクエリを作成しました。

ファイルが作成されたら、トリガー ファイルまたは行数、ファイルの日付、名前などの情報を含む別のテキスト ファイルも作成する必要があります。これらとは別に、このトリガー ファイルにはファイル サイズ情報が必要です。

トリガーテーブルを作成し、データ収集クエリでデータを収集するときに、行数、ファイル名、日付などの他の情報で更新し続けることがわかったと思います。しかし、クエリ内からトリガー ファイルのファイル サイズを取得する方法について混乱しています。

アイデアをいただければ幸いです。

4

2 に答える 2

1

個人的には、Powershell を使用して Windows と対話する必要があるタスクを実行しますが、あまり興味深いものではありません。

私が考えることができる2つのSQLベースのソリューションがあります:

xp_cmdshell

exec xp_cmdshell 'dir c:\temp\test.txt'

  Output
  Volume in drive C is System
  Volume Serial Number is A227-BF7F
  NULL
  Directory of c:\temp
  NULL
  26/04/2013  10:52 AM                20 test.txt
                1 File(s)             20 bytes
                0 Dir(s)  214,210,105,344 bytes free
  NULL

ただし、いくつかの欠点があります。

  1. xp_cmdshell はデフォルトでオフになっています。(メッセージ 15281、レベル 16、状態 1、プロシージャ xp_cmdshell、行 1 SQL Server は、コンポーネント 'xp_cmdshell' のプロシージャ 'sys.xp_cmdshell' へのアクセスをブロックしました。このコンポーネントは、このサーバーのセキュリティ構成の一部としてオフになっているためです。システム管理者sp_configure を使用して、'xp_cmdshell' の使用を有効にすることができます。'xp_cmdshell' の有効化の詳細については、SQL Server Books Online の「Surface Area Configuration」を参照してください)。

  2. 出力を解析する必要があります。

オープン行セット

select datalength(bulkcolumn) from openrowset(bulk 'c:\temp\test.txt', single_clob) a

それがテキスト ファイルであり、オペレーティング システムによって報告される正確な数が実際には必要ないと仮定すると、テキスト ファイルに含まれるバイト数を数えることができます。

それがあなたにいくつかのアイデアを与えることを願っています。

于 2013-04-26T01:03:46.693 に答える
0

すべての入力に感謝します。ファイルサイズを読み取り、そのためにデータベースを更新する.net実行可能ファイルを作成することになりました。

于 2013-05-02T15:53:02.873 に答える