サーバ側の関数

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 28章ラージオブジェクト | 早送り | 次のページ

# 28.4. サーバ側の関数

これまで説明したクライアント側の関数それぞれに対応する、SQLから呼び出し可能なサーバ側の関数があります。 実際、ほとんどのクライアント側の関数は対応するサーバ側の関数に対する単なるインタフェースです。 SQLコマンドからの呼び出しが実際に有用な関数は、`lo_creat`、`lo_unlink`、`lo_import`、`lo_export`です。 これらの使用例を示します。

    CREATE TABLE image (
        name            text,
        raster          oid
    );

    SELECT lo_creat(-1);       -- 新しい殻のラージオブジェクトのOIDを返します

    SELECT lo_unlink(173454);  -- OID 173454のラージオブジェクトを削除します

    INSERT INTO image (name, raster)
        VALUES ('beautiful image', lo_import('/etc/motd'));

    SELECT lo_export(image.raster, '/tmp/motd') FROM image
        WHERE name = 'beautiful image';

サーバ側の`lo_import`および`lo_export`関数の動作はクライアント側の関数とかなり異なります。 この2つの関数はサーバのファイルシステム上のファイルの読み書きを、データベースを所有するユーザの権限で行ないます。 従って、これらの使用はスーパーユーザに限定されています。 対照的に、クライアント側のインポート関数とエクスポート関数はクライアントのファイルシステム上のファイルをクライアントプログラムの権限で読み書きします。 このクライアント側の関数は全てのPostgreSQLユーザから利用することができます。

前のページ | ホーム | 次のページ
クライアントインタフェース | 上に戻る | サンプルプログラム