PostgresqlのWebページには、pgcryptoがPostgresql9.1のダウンロードに含まれていると書かれています。ただし、pgcrypto.sqlファイルはありません。 share\extensionディレクトリを見ると、次の3つのファイルがあります。
pgcrypto--1.0.sql pgcrypto--unpackaged--1.0.sql pgcrypto.control
でインストールしようとすると
\ ipgcrypto--1.0.sql
私はこのようなエラーをたくさん受け取ります:
psql:pgcrypto--1.0.sql:194: ERROR: could not access file "MODULE_PATHNAME": No such file or directory
おそらく、share\extension内のファイルは、share\contrib\pgcrypto.sqlファイル(存在しません)によって呼び出されることを意図していました。
Postgresql 8.4のLinuxでは、pgcrypto.sqlを取得するためにcontribパッケージをインストールする必要があります。 Postgresql 9.1用にWindowsにインストールする必要のある別のパッケージはありますか?
ありがとう。
V9.1では、追加のモジュールをインストールする方法が変更され、それらはEXTENSIONSと呼ばれるようになり、特別なSQLステートメント CREATE EXTENSION でインストールされます。
SHA1関数を含むMySQLスクリプトを変換しようとしていました。最後に「createextensionpgcrypto」コマンドを実行した後、PostgreSQLドキュメントの例は完全に機能しました(少なくともこれまでに試したすべての値)。
SHA1関数は次のとおりです。
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$
SELECT encode(digest($1, 'sha1'), 'hex')
$$ LANGUAGE SQL STRICT IMMUTABLE;
PostgreSQL9.1でPgAdminIIIツールを使用してこれらすべてを実行したことと64ビットのWindows7で実行したことに注意してください。
何らかの拡張機能を使用する必要がある場合、その方法は、たとえばpgcryptoの場合です。ウィンドウクエリからの「CREATEEXTENSION pgcrypto」ですが、このスクリプトは、この拡張機能を使用する必要があるDBで実行する必要があることを伝えることが非常に重要です。スクリプトがインストールされていることを確認するためにスクリプトを終了し、DBの拡張機能セクションでpgAdminをチェックインします。
これがお役に立てば幸いです。