CData SharePoint Driver でファイルを操作する — ストアドプロシージャ活用ガイド V25 対応版

by 浦邊信太郎 | May 26, 2026 | Last Updated: May 26, 2026

CData SharePoint Drivers では、SQL のEXEC文やCALL文(ストアドプロシージャ呼び出し)を使って SharePoint のドキュメントライブラリに対するファイル操作を行えます。ダウンロード・アップロードといった基本操作から、フォルダ単位の移動・コピーまで、すべて SQL ベースで実行できるのが最大の特長です。本記事では V25で利用可能な 8 つのストアドプロシージャを、実際の HTTP リクエストと合わせてわかりやすく解説します。

本記事で使用する接続プロパティ

プロパティ

スキーマ

REST

URL

https://test.sharepoint.com/sites/MainTeamSite

ストアドプロシージャ一覧

本記事で紹介する 8 つのストアドプロシージャは以下の通りです。

プロシージャ名

機能

DownloadDocument

ドキュメントをローカルにダウンロード

UploadDocument

ドキュメントをライブラリにアップロード

CopyDocument

ドキュメントを別パスにコピー

DeleteDocument

ドキュメントを削除(ごみ箱へ)

RenameAttachmentOrDocument

ドキュメントをリネーム

CreateFolder

フォルダを作成

CopyFolderJob

フォルダをコピー(非同期ジョブ)

MoveFolderJob

フォルダを移動(非同期ジョブ)

1. DownloadDocument — ファイルのダウンロード

概要

SharePoint ドキュメントライブラリからファイルをローカルに取得します。RemoteFile にはライブラリ内の相対パスのほか、完全な URL も指定可能です。

パラメータ

パラメータ

必須

説明

File

String

×

ローカル保存先パス(空の場合は FileData に base64 で返る)

Library

String

×

ドキュメントライブラリ名(例: Shared Documents

RemoteFile

String

ライブラリ内の相対パスまたは完全 URL

Encoding

String

×

BASE64(既定)または NONE

ReadTimeout

String

×

タイムアウト秒数

クエリ例

EXEC DownloadDocument
  @File = 'C:\\Work\\test.txt',
  @Library = 'Shared Documents',
  @RemoteFile = 'test.txt';

CALL 文での呼び出し:

CALL DownloadDocument(
  'C:\\Work\\test.txt',
  'Shared Documents',
  'test.txt'
);

ポイント

  • File を空文字 '' にすると、ファイルの内容が FileData カラムに base64 で返ります。ストリーム処理やインメモリ操作に活用できます。

  • Encoding = 'NONE' を指定するとエンコードなしのバイナリデータが返ります。

2. UploadDocument — ファイルのアップロード

概要

ローカルファイルを指定した SharePoint フォルダにアップロードします。同名ファイルの上書きや、大容量ファイルのチャンクアップロードにも対応しています。

パラメータ

パラメータ

必須

説明

RelativeUrl

String

アップロード先フォルダの相対パス

InputFilePath

String

×

ローカルファイルパス

FileName

String

SharePoint 上のファイル名

Overwrite

String

×

true で上書き

Content

String

×

InputStream(InputFilePath 未指定時に使用)

ChunkSize

Int

×

チャンクサイズ(MB)。大容量ファイル向け

クエリ例

EXEC UploadDocument
  @InputFilePath = 'C:\\Work\\test.txt',
  @RelativeUrl = '/sites/MainTeamSite/Shared Documents/',
  @FileName = 'test.txt';

CALL 文での呼び出し:

CALL UploadDocument(
  '/sites/MainTeamSite/Shared Documents/',
  'C:\\Work\\test.txt',
  'test.txt'
);

大容量ファイルのアップロード(チャンク送信)

EXEC UploadDocument
  @RelativeUrl = 'Shared Documents/',
  @InputFilePath = 'C:\\Work\\large_file.zip',
  @FileName = 'large_file.zip',
  @ChunkSize = '10';

SharePoint の推奨チャンクサイズは 10 MB です。チャンクを小さくしすぎると API のスロットリングが発生する場合があるため注意してください。なお、チャンクアップロードは SharePoint 2016/2019 Server および SharePoint Online でのみ利用可能です。

3. CopyDocument — ファイルのコピー

概要

ドキュメントライブラリ内でファイルを別の場所にコピーします。バックアップ作成やコンテンツ複製に活用できます。

パラメータ

パラメータ

必須

説明

SourceFileRelativeUrl

String

コピー元のサーバー相対 URL

DestFileRelativeUrl

String

コピー先のサーバー相対 URL

クエリ例

EXEC CopyDocument
  @SourceFileRelativeUrl = '/sites/MainTeamSite/Shared Documents/test.txt',
  @DestFileRelativeUrl = '/sites/MainTeamSite/Shared Documents/test - copy.txt';

CALL 文での呼び出し:

CALL CopyDocument(
  '/sites/MainTeamSite/Shared Documents/test.txt',
  '/sites/MainTeamSite/Shared Documents/test - copy.txt'

4. DeleteDocument — ファイルの削除

概要

指定したファイルを SharePoint のごみ箱に移動します。完全削除ではなく recycle() エンドポイントを使用するため、削除後も一定期間は復元が可能です。

パラメータ

パラメータ

必須

説明

RelativePath

String

削除対象ファイルのサーバー相対 URL

クエリ例

EXEC DeleteDocument
  @RelativePath = '/sites/MainTeamSite/Shared Documents/test - copy.txt';

CALL 文での呼び出し:

CALL DeleteDocument(
  '/sites/MainTeamSite/Shared Documents/test - copy.txt'
);

5. RenameAttachmentOrDocument — ファイルのリネーム

概要

ドキュメントまたは添付ファイルの名前を変更します。内部的にはファイルを同じフォルダ内の新しいパスに MoveToUsingPath で移動させることでリネームを実現しています。

パラメータ

パラメータ

必須

説明

SourceFileURL

String

リネーム対象ファイルのサーバー相対 URL

NewFileName

String

変更後のファイル名

クエリ例

EXEC RenameAttachmentOrDocument
  @SourceFileURL = '/sites/MainTeamSite/Shared Documents/test.txt',
  @NewFileName = 'test - renamed.txt';

CALL 文での呼び出し:

CALL RenameAttachmentOrDocument(
  '/sites/MainTeamSite/Shared Documents/test.txt',
  'test - renamed.txt'
);

6. CreateFolder — フォルダの作成

概要

指定したドキュメントライブラリに新しいフォルダを作成します。階層構造を持つフォルダの整理に活用できます。

パラメータ

パラメータ

必須

説明

RelativeUrl

String

親フォルダのサーバー相対 URL

FolderName

String

新規フォルダ名

SiteURL

String

×

接続プロパティのデフォルト URL を上書きする場合に指定

クエリ例

EXEC CreateFolder
  @RelativeUrl = '/Shared Documents',
  @FolderName = 'TestFolder';

CALL 文での呼び出し:

CALL CreateFolder('/Shared Documents', 'TestFolder');

結果セット

カラム

説明

Success

Boolean

操作成否

Id

String

新規フォルダの一意識別子

7. CopyFolderJob / MoveFolderJob — フォルダのコピー・移動

概要

SharePoint の CreateCopyJobs API を使用して、フォルダ単位でのコピーまたは移動を非同期ジョブとして実行します。大量ファイルを含むフォルダでも安定して処理できます。

WaitJobToFinish = true を指定すると、ドライバーがジョブの完了を待機してから結果を返します。

パラメータ(共通)

パラメータ

必須

説明

SourceFolderUrl

String

操作元フォルダの相対 URL

DestinationFolderUrl

String

操作先フォルダの相対 URL

WaitJobToFinish

Boolean

×

true でジョブ完了まで待機

CopyFolderJob — フォルダのコピー

EXEC CopyFolderJob
  SourceFolderUrl = '/Shared Documents/TestFolder1',
  DestinationFolderUrl = '/Shared Documents/TestFolder2',
  WaitJobToFinish = true;

CALL 文での呼び出し:

CALL CopyFolderJob(
  '/Shared Documents/TestFolder1',
  '/Shared Documents/TestFolder2',
  true
);

MoveFolderJob — フォルダの移動

EXEC MoveFolderJob
  SourceFolderUrl = '/Shared Documents/TestFolder1',
  DestinationFolderUrl = '/Shared Documents/TestFolder2',
  WaitJobToFinish = true;

CALL 文での呼び出し:

CALL MoveFolderJob(
  '/Shared Documents/TestFolder1',
  '/Shared Documents/TestFolder2',
  true
);

まとめ

CData JDBC Driver for Microsoft SharePoint の V25 では、ストアドプロシージャを通じてファイル・フォルダ操作を SQL だけで完結できます。SharePoint REST API の複雑な URL エンコーディングやリクエスト構造をドライバーが隠蔽してくれるため、アプリケーション側のコードを大幅にシンプルにできるのが魅力です。次のステップとして、JDBC や ODBC 経由で Python / Java などから本記事のプロシージャを呼び出す方法や、BI ツールとの連携についても合わせてご参照ください。