v13

PostgreSQL

ストアドファンクション(配列を返却)

CREATE FUNCTION (配列を返却) PostgreSQLの良いところの一つに配列を簡単に利用できる点です。システムで提供しているファンクションの中にも普通に返却値を配列にしているものもあります。そのせいか配列を操作する配列関数が...
PostgreSQL

PostgreSQL 生成列(Oracleの仮想列)

PostgreSQLにもVer.12から生成列(Oracleの仮想列、MySQLの生成列)が利用できます。生成列とは他の列から計算された値を持つカラムです。実際に値を持つのでインデックスの作成もできますが、insert/updateで直接カ...
PostgreSQL

PostgreSQL ストアドファンクションサンプル

PostgreSQL ストアドファンクションサンプル 「raise info」で標準出力しています。デバッグ等に使います。Oracleでいうところのdbms_output.put_line()のように利用します。PostgreSQLのファン...
PostgreSQL

PostgreSQL カレントスキーマを変更する

カレントスキーマを変更する postgreSQLには「カレントスキーマ」という言葉があります。スキーマ修飾を省略して各種オブジェクトを指定した際「まず最初に参照するスキーマ」の事です。また、このスキーマ参照順序をサーチパスといいます。デフォ...
PostgreSQL

PostgreSQL 表領域一覧(テーブル空間一覧)

表領域にはオーナが存在します。オーナー(ユーザ)がクラスタ全体で共通であるように表領域についてもクラスタ全体で共通です。(クラスタ内DB何れからも利用できます)またクラスタ内データベースはそれぞれデフォルト表領域を一つ持ち、対象データベース...
PostgreSQL

PostgreSQL postgres_fdwでDBリンクを利用する

はじめに PostgreSQLでDBリンクを実現するには2つのやり方があります。何れも拡張モジュールを導入する事になるのですが今回は postgres_fdw ( contribモジュールに含まれる )を利用します。従来から存在する「dbl...
PostgreSQL

PostgreSQLでDBリンク(dblink)を利用する

はじめに PostgreSQLにてDBリンクを実現するには2つのやり方があり、何れも拡張モジュールを導入する事になるのですが今回は「dblinkモジュール」を利用します。OracleのDBリンクはDDL文で(create database ...
PostgreSQL

PostgreSQL permission denied for schema 発生時の対応方法

他ユーザが所有するオブジェクト(例えばテーブル)にアクセスできるようにするためには、対象のオブジェクトに加えスキーマにも権限付与が必要です。以下はsooniスキーマに存在する所有者sooniのex02テーブルに対し、online_userからアクセスしたら permission denied が発生した状況です。
PostgreSQL

PostgreSQL テーブル、ビューへのアクセス権限を調べる

information_schema.role_table_grantsを参照する事で確認する事ができます。以下はonline_userがアクセスできるテーブルの一覧です。
PostgreSQL

PostgreSQL オブジェクト一覧を確認する(アクセス権限含む)

基本はpg_classを参照すればオブジェクト一覧を取得できるのですが、スキーマ名や、所有者名までを調べたい場合pg_namespaceやpg_rolesまで結合しないといけない点少し不便ですね。