Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ディレクトリの内容に関する情報を返します。
sp_list_directory( root_path [, max_depth ] )
root_path ディレクトリの絶対パスまたは相対パスを指定する LONG NVARCHAR パラメータ。相対パスは、サーバの作業ディレクトリです。サンドボックス機能が有効になっている場合、絶対パスと相対パスは、メインデータベースファイルがあるディレクトリを参照します。
max_depth トラバースするディレクトリの最大数を指定する任意の INTEGER パラメータ。トラバースする root_path のすべてのサブディレクトリに、max_depth の値として Null、0、または負の値が指定されます。デフォルトは NULL です。
指定されたディレクトリのファイルとサブディレクトリに関する情報を返すプロシージャ。このプロシージャは、file_path、file_type、および file_size カラムを持つテーブルを返します。
max_depth パラメータは、ディレクトリをトラバースする最大の深さを指定します。max_depth の NULL、0、または負の値は、制限がないことを意味します。
READ FILE システム権限が必要です。
SQL/2008 ベンダー拡張。
次の文は、c:\sqlany\samples\SQLAnywhere ディレクトリのファイルまたはサブディレクトリを一覧表示します。
CALL sp_list_directory('c:\\sqlany\\samples\\SQLAnywhere');
次の文は、c:\sqlany\samples\SQLAnywhere ディレクトリと c:\sqlany\samples\UltraLite ディレクトリのファイルとフォルダの合計数を返します。
SELECT COUNT(*) FROM sp_list_directory( 'c:\\sqlany\\samples\\SQLAnywhere' ) UNION ALL SELECT COUNT(*) FROM sp_list_directory( 'c:\\sqlany\\samples\\UltraLite' );
c:\sqlany\samples\SQLAnywhere と c:\sqlany\samples\UltraLite の両方のディレクトリに同じファイル名、ファイルタイプ、およびファイルサイズのものが含まれる場合、次の文は 2 つのディレクトリからの結果を組み合わせて、ユニークな結果の合計数を示します。
SELECT COUNT(*) FROM ( SELECT REPLACE( file_path, 'c:\\sqlany\\samples\\SQLAnywhere', '' ) AS file_path, file_type, file_size FROM sp_list_directory( 'c:\\sqlany\\samples\\SQLAnywhere' ) UNION SELECT REPLACE( file_path, 'c:\\sqlany\\samples\\UltraLite', '' ) AS file_path, file_type, file_size FROM sp_list_directory( 'c:\\sqlany\\samples\\UltraLite' ) ) d;