SQL 文からデータをファイルに書き込みます。
xp_write_file( filename, file_contents )
filename ファイル名を指定する LONG VARCHAR パラメータ。
file_contents ファイルに書き込む内容を指定する LONG BINARY パラメータ。
この関数は、file_contents をファイル filename に書き込みます。成功した場合は 0 を返し、失敗した場合は 0 以外の値を返します。
filename 値は、絶対パスまたは相対パスで事前に指定します。filename を相対パスでプレフィクスを付けた場合、ファイル名はデータベース・サーバの作業ディレクトリに関連があります。ファイルがすでに存在する場合は、内容が上書きされます。
この関数は、長いバイナリのデータをファイルにアンロードする場合に便利です。
また、CSCONVERT 関数を使用すると、xp_write_file システム・プロシージャを使用するときに文字セット変換の要件を指定できます。CSCONVERT 関数 [文字列]を参照してください。
DBA 権限が必要です。
次の例では、xp_write_file を使用して、データ 123456 を含むファイル accountnum.txt を作成します。
CALL xp_write_file( 'accountnum.txt', '123456' ); |
次の例では、サンプル・データベースの Contacts テーブルに問い合わせて、ニュー・ジャージー在住の各連絡先用にテキスト ファイルを作成します。各テキスト・ファイルには、連絡先の姓 (Surname) と名 (GivenName) を連結し、その後に文字列 .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) を格納します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |