問題タブ [plperl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2984 参照

windows - 誰かがWindowsでPostgres9.1を使用するためにplperlを入手しましたか?

plperlをWindows上のPostgres9.1で動作させることができませんでした。

同じ問題がここで説明されていますが、これまでのところ解決策はありません:http: //postgresql.1045698.n5.nabble.com/BUG-6204-Using-plperl-functions-generate-crash-td4802111.html

REPRO

ここからWindows用のPerl5.1432ビットをインストールします:http: //downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi

システムパス変数にPerlを追加します。EnterpriseDBからWindows用のPostgres9.1.232ビットをインストールしますwww.enterprisedb.com/products/pgdownload.do#windows

次に、テストDBを作成し、それにperlを追加して、関数を作成してみます。

これにより、Postgresサーバープロセスがシャットダウンしたことに注意してください。うわぁ!

Postgresのログファイルを見ると、これが見つかります...

0 投票する
2 に答える
11780 参照

postgresql - PostgreSQLエラー:言語「plperlu」が存在しません

私はPostgreSQLの初心者です。PostgreSQLのSQLパッチを入手し、SQLを実行して最後に構成しました。次のエラーが発生します。私のバックグラウンドはMySQLです。

クエリ

エラー

エラー:言語「plperlu」は存在しませんSQL状態:42704ヒント:CREATE LANGUAGEを使用して、言語をデータベースにロードします。

0 投票する
1 に答える
2175 参照

perl - Perlでコマンドライン関数を呼び出し、文字列として出力を取得します

出力を文字列として取得できるように、Perlでコマンドライン関数を実行するための最良/最も簡単な方法は何ですか?

私が実際にやろうとしているのは、PostgreSQLのPL / Perl関数内からJavaプログラムを呼び出すことです。出力文字列が必要ですが、現時点では0を返しているようです。

これが私が何を求めているかを説明するための簡単なコードです:

0 投票する
1 に答える
503 参照

perl - PL/Perlコードからのデータベースアクセス

誰かがこのコードのエラーを修正するのを手伝ってくれませんか。

(これは私のコードの単純化されたバージョンですが、問題を特定します)。

これは構文エラーを返します:

主な目的は、入力パラメータを文字列として定式化し、それを使用して、文字列を返すコマンドラインプログラムを呼び出すことです。次に、この文字列をこの関数の戻り値として出力します。

0 投票する
1 に答える
87 参照

postgresql - PostgreSQLのplperluインタプリタの@INCおよび/またはキャッシュされたライブラリ:データベースごとに分けられますか?

私が開発しているいくつかのライブラリの異なるバージョンがあり、私が作成したさまざまなplperl関数内から、に基づいて特定のバージョンをロードしたいと考えていますcurrent_database()

(IIRCが優先されるのではuseなくrequire、ライブラリをキャッシュする可能性があるためだと思いますか?)

ただし、同じサーバー上の異なるデータベースで問題が発生するのではないかと心配しています。どちらの方法でも、次のように考えています。

1)use lib次にuse-複数のパスが@INCでスタックしている場合、使用されるのは正しいパスではない可能性があります

2)require-これは、現在のスクリプトで常に正しいスクリプトが使用されていることを意味しますが、ライブラリが毎回リロードされることを意味しますか?いずれにせよ、一度使用したライブラリがロードされたままの場合、異なるバージョンからの名前空間の汚染がバグを引き起こす可能性はありますか?(たとえば、変数が定義されているかどうかに基づいてブランチがあり、あるバージョンではデフォルトであり、別のバージョンではそうではない場合、すべてのバージョンは、単に定義を解除するのではなく、明示的に定義を解除しない限り、すべてのバージョンがそうであるかのように動作しますそれを定義していませんか?)

0 投票する
1 に答える
373 参照

sql-server - PostgreSQL関数からMicrosoftSQLServer上のデータにアクセスする

PostgreSQLを使用するアプリケーションがありますが、MSSQL上のサードパーティが制御するデータベースとも対話します。データは、次のようなことを行うことが望ましいほど密接に結び付けられている場合があります。

thing_from_ms_crossover_function現在、plperlで実装しています。plpgsqlなどでこれを行う方法はありますか?そのような場合にplperlインタープリターを起動する必要はありませんか?

もう1つのオプションは、明らかに私のクライアントアプリから両方のデータベースにアクセスすることですが、それは上記のビュー構文よりもはるかに便利ではなくなります。

0 投票する
1 に答える
3474 参照

postgresql - PostgreSQL: エンコード "UTF8" の文字は、plperl ストアド プロシージャの "LATIN1" に相当するものはありません

Pl/Perl で書かれたこのストアド プロシージャがあります。

データベース (LATIN1 encodend) にいくつかのフィールドがあり、次のようなものが得られるため、無効な文字が含まれている可能性があります。

PostgreSQL の convert() と convert_from() を使用してエンコーディングを変更しようとしましたが、うまくいきませんでした。何か案は?

前もって感謝します。

0 投票する
1 に答える
439 参照

linux - postgres-8.4 トリガーで plperl スクリプトをデバッグする方法

トリガー実行用の plperl スクリプト関数を作成しています。INSERT / UPDATE が発生すると、受信したイベントに基づいてクエリを動的に形成するという点で、私の plperl スクリプトが実行されます。挿入/更新時にターミナルで印刷したかったのです。しかし、それは起こりません。印刷できる方法を教えてください。

0 投票する
2 に答える
553 参照

perl - この postgres ストアド プロシージャが「utf8」を使用したいのはなぜですか?

Perl 5.12.4 を使用した Postgres 9.2 の plperl ストアド プロシージャの特異性に遭遇しました。

この「壊れた」SP を使用して、奇妙な動作を再現できます。

実行時:

ただし、qr//操作を評価に移動すると、機能します。

結果:

  1. eval が自動をバイパスするのはなぜuse utf8ですか?

  2. use utf8そもそもなぜ必要なのですか?私のコードは UTF8 ではありませuse utf8

    どちらかといえば、スクリプトへの入力に非 ASCII 値が含まれている場合、evalバージョンが なしで壊れると予想されるかもしれません。use utf8(さらなるテストでは、ASCII 以外の値を bar() に渡すと、実際に eval が同じエラーで失敗することが示されています)


多くの Postgres インストールでは、perl インタープリターの起動時に「utf8」が自動的に読み込まれることに注意してください。これは、少なくとも Debian ではデフォルトであり、次の実行で示されDO 'elog(WARNING, join ", ", sort keys %INC)' language plperl;ます。

警告: Carp.pm、Carp/Heavy.pm、Exporter.pm、feature.pm、overload.pm、strict.pm、unicore/Heavy.pl、unicore/To/Fold.pl、unicore/lib/Perl/SpacePer。 pl、utf8.pm、utf8_heavy.pl、vars.pm、warnings.pm、warnings/register.pm コンテキスト
: PL/Perl 匿名コード ブロック
DO

しかし、奇妙な動作を示すマシンではそうではありません:

警告: Carp.pm、Carp/Heavy.pm、Exporter.pm、feature.pm、overload.pm、overloading.pm、strict.pm、vars.pm、warnings.pm、warnings/register.pm コンテキスト
: PL/Perl匿名コード ブロック
DO

この質問は、ターゲット マシンに utf8 を自動的にロードさせる方法に関するものではありません。私はそれを行う方法を知っています。そもそもなぜ必要なのか気になります。