問題タブ [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.
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のログファイルを見ると、これが見つかります...
postgresql - PostgreSQLエラー:言語「plperlu」が存在しません
私はPostgreSQLの初心者です。PostgreSQLのSQLパッチを入手し、SQLを実行して最後に構成しました。次のエラーが発生します。私のバックグラウンドはMySQLです。
クエリ
エラー
エラー:言語「plperlu」は存在しませんSQL状態:42704ヒント:CREATE LANGUAGEを使用して、言語をデータベースにロードします。
perl - Perlでコマンドライン関数を呼び出し、文字列として出力を取得します
出力を文字列として取得できるように、Perlでコマンドライン関数を実行するための最良/最も簡単な方法は何ですか?
私が実際にやろうとしているのは、PostgreSQLのPL / Perl関数内からJavaプログラムを呼び出すことです。出力文字列が必要ですが、現時点では0を返しているようです。
これが私が何を求めているかを説明するための簡単なコードです:
perl - PL/Perlコードからのデータベースアクセス
誰かがこのコードのエラーを修正するのを手伝ってくれませんか。
(これは私のコードの単純化されたバージョンですが、問題を特定します)。
これは構文エラーを返します:
主な目的は、入力パラメータを文字列として定式化し、それを使用して、文字列を返すコマンドラインプログラムを呼び出すことです。次に、この文字列をこの関数の戻り値として出力します。
postgresql - PostgreSQLのplperluインタプリタの@INCおよび/またはキャッシュされたライブラリ:データベースごとに分けられますか?
私が開発しているいくつかのライブラリの異なるバージョンがあり、私が作成したさまざまなplperl関数内から、に基づいて特定のバージョンをロードしたいと考えていますcurrent_database()
。
(IIRCが優先されるのではuse
なくrequire
、ライブラリをキャッシュする可能性があるためだと思いますか?)
ただし、同じサーバー上の異なるデータベースで問題が発生するのではないかと心配しています。どちらの方法でも、次のように考えています。
1)use lib
次にuse
-複数のパスが@INCでスタックしている場合、使用されるのは正しいパスではない可能性があります
2)require
-これは、現在のスクリプトで常に正しいスクリプトが使用されていることを意味しますが、ライブラリが毎回リロードされることを意味しますか?いずれにせよ、一度使用したライブラリがロードされたままの場合、異なるバージョンからの名前空間の汚染がバグを引き起こす可能性はありますか?(たとえば、変数が定義されているかどうかに基づいてブランチがあり、あるバージョンではデフォルトであり、別のバージョンではそうではない場合、すべてのバージョンは、単に定義を解除するのではなく、明示的に定義を解除しない限り、すべてのバージョンがそうであるかのように動作しますそれを定義していませんか?)
sql-server - PostgreSQL関数からMicrosoftSQLServer上のデータにアクセスする
PostgreSQLを使用するアプリケーションがありますが、MSSQL上のサードパーティが制御するデータベースとも対話します。データは、次のようなことを行うことが望ましいほど密接に結び付けられている場合があります。
thing_from_ms_crossover_function
現在、plperlで実装しています。plpgsqlなどでこれを行う方法はありますか?そのような場合にplperlインタープリターを起動する必要はありませんか?
もう1つのオプションは、明らかに私のクライアントアプリから両方のデータベースにアクセスすることですが、それは上記のビュー構文よりもはるかに便利ではなくなります。
postgresql - PostgreSQL: エンコード "UTF8" の文字は、plperl ストアド プロシージャの "LATIN1" に相当するものはありません
Pl/Perl で書かれたこのストアド プロシージャがあります。
データベース (LATIN1 encodend) にいくつかのフィールドがあり、次のようなものが得られるため、無効な文字が含まれている可能性があります。
PostgreSQL の convert() と convert_from() を使用してエンコーディングを変更しようとしましたが、うまくいきませんでした。何か案は?
前もって感謝します。
linux - postgres-8.4 トリガーで plperl スクリプトをデバッグする方法
トリガー実行用の plperl スクリプト関数を作成しています。INSERT / UPDATE が発生すると、受信したイベントに基づいてクエリを動的に形成するという点で、私の plperl スクリプトが実行されます。挿入/更新時にターミナルで印刷したかったのです。しかし、それは起こりません。印刷できる方法を教えてください。
perl - この postgres ストアド プロシージャが「utf8」を使用したいのはなぜですか?
Perl 5.12.4 を使用した Postgres 9.2 の plperl ストアド プロシージャの特異性に遭遇しました。
この「壊れた」SP を使用して、奇妙な動作を再現できます。
実行時:
ただし、qr//
操作を評価に移動すると、機能します。
結果:
eval が自動をバイパスするのはなぜ
use utf8
ですか?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 を自動的にロードさせる方法に関するものではありません。私はそれを行う方法を知っています。そもそもなぜ必要なのか気になります。