Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
SQL 文からデータをファイルに書き込みます。
xp_write_file( filename , file_contents )
filename ファイル名を指定する LONG VARCHAR パラメータ。
file_contents ファイルに書き込む内容を指定する LONG BINARY パラメータ。
この関数は INTEGER ステータスコードを返します。
この関数は、file_contents をファイル filename に書き込みます。成功した場合は 0 を返し、失敗した場合は 0 以外の値を返します。
filename 値には、絶対パスまたは相対パスのプレフィクスを付けることができます。filename に相対パスでプレフィクスを付けた場合、ファイル名はデータベースサーバの作業ディレクトリを基準にします。ファイルがすでに存在する場合は、内容が上書きされます。
この関数は、長いバイナリのデータをファイルにアンロードする場合に便利です。
また、CSCONVERT 関数を使用すると、xp_write_file システムプロシージャを使用するときに発生する文字セット変換の要件に対処できます。
WRITE FILE システム権限が必要です。
次の例では、xp_write_file を使用して、データ 123456 を含むファイル accountnum.txt を作成します。
CALL xp_write_file( 'accountnum.txt', '123456' );
次の例では、サンプルデータベースの Contacts テーブルに問い合わせて、ニュージャージー在住の各連絡先用にテキストファイルを作成します。各テキストファイルには、連絡先の名前 (GivenName) と姓 (Surname) を連結し、その後に文字列 .txt を追加した名前 (たとえば Reeves_Scott.txt) が付けられ、連絡先の住所 (Street)、市 (City)、州 (State) が別々の行に格納されます。
SELECT xp_write_file( Surname || '_' || GivenName || '.txt', Street || '\n' || City || '\n' || State ) FROM Contacts WHERE State = 'NJ';
次の例では、xp_write_file を使用して、Products テーブル内の全製品について画像ファイル (JPG) を作成します。ID カラムの各値は、Photo カラムの対応する値のコンテンツが含まれるファイルのファイル名になります。
SELECT xp_write_file( ID || '.jpg', Photo ) FROM Products;
上記の例では、ID は UNIQUE 制約が指定されたローになります。これは、ファイルが以降のローのコンテンツで上書きされないようにするために重要です。また、カラムに格納されているデータに適用できるファイルの拡張子を指定する必要があります。この場合は、Products.Photo に画像データ (JPG) を格納します。