PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# dblink_exec

## 名前

dblink_exec -- リモートデータベースでコマンドを実行します

## 概要

    dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
    dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
    dblink_exec(text sql [, bool fail_on_error]) returns text

## 説明

`dblink_exec`はリモートデータベースでコマンド（つまり行を返さない任意のSQL文）を実行します。

2つの`text`型の引数が与えられた場合、一番目の引数はまず永続接続の名前を検索するために使われます。 もし見つかれば、コマンドがその接続上で実行されます。 見つからなければ、一番目の引数は`dblink_connect`用の接続情報文字列として扱われ、このコマンド実行時と同様に指定された接続が開きます。

## 引数

`conname`

  使用する接続の名前です。 無名の接続を使用する場合はこのパラメータを省略します。

`connstr`

  上で`dblink_connect`で説明した接続情報文字列です。

`sql`

  例えば`insert into foo values(0,'a','{"a0","b0","c0"}')`といった、リモートデータベースで実行させるSQL問い合わせです。

`fail_on_error`

  真（省略時のデフォルト）の場合、接続のリモート側で発生したエラーによりローカル側でもエラーが発生します。 偽の場合リモート側のエラーはローカル側にはNOTICEとして報告され、この関数の戻り値は`ERROR`になります。

## 戻り値

状態、つまりコマンドの状態または`ERROR`を返します。

## 例

    SELECT dblink_connect('dbname=dblink_test_standby');
     dblink_connect
    ----------------
     OK
    (1 row)

    SELECT dblink_exec('insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
       dblink_exec
    -----------------
     INSERT 943366 1
    (1 row)

    SELECT dblink_connect('myconn', 'dbname=regression');
     dblink_connect
    ----------------
     OK
    (1 row)

    SELECT dblink_exec('myconn', 'insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
       dblink_exec
    ------------------
     INSERT 6432584 1
    (1 row)

    SELECT dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
    NOTICE:  sql error
    DETAIL:  ERROR:  null value in column "relnamespace" violates not-null constraint

     dblink_exec
    -------------
     ERROR
    (1 row)

前のページ | ホーム | 次のページ
dblink | 上に戻る | dblink_open