問題タブ [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 投票する
1 に答える
400 参照

perl - PostgreSQL に他の Perl バージョンを使用するように指示するには?

Ubuntu 14.04 64 ビット マシンで作業しています。Perl の最新バージョン (5.18) ではインストールできない特定のモジュールを操作するには、Perl 5.14 を使用する必要があります。私の postgresql-9.3 サーバーは、postgres-plperl のインストール中に perl 5.18 をインストールする必要があります。したがって、Postgres に 5.14 バージョンを使用するように指示したいのですが、それを行う方法が見つかりませんでした。それを行う方法はありますか?

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

sql - Perl/Postgresql: plperl.so 未定義のシンボル: Perl_sv_2bool_flags

これは私の最初の投稿なので、最初に必要なすべての情報を提供していない場合は申し訳ありません!

私の上司と私は、サーバーの 1 つ (Centos 6.5、Postgres 9.2.1、Perl 5.10.1) の postgres インストールに plperl をインストールしようとしてきましたが、次のような同じ問題が発生し続けています。

このエラーは、SQL または PgAdmin III GUI を使用して言語をインストール (言語 plperl を作成) しようとすると返されます。

この問題に関連するほとんどの投稿が示唆するように、lperl.soファイルがある/opt/PostgreSQL/9.2/lib/postgresql/ことと探していることを確認しました。すべての男性と彼の犬は、どこに配置すべきかについて異なる提案をしているので、libperl.so私は多くの異なる場所に配置しようとしました.libperl.so

実行ldd /opt/PostgreSQL/9.2/lib/postgresql/plperl.soすると、次のものが返されます。

Postgres と Perl のバージョンは問題ではないと思います。Centos 6.5、Postgres 9.3、および Perl 5.10.1 を実行している別のサーバーがあり、pl/perl が完全に実行されています (修正するためにそこで何が起こっているかを調べてみました)これはうまくいきません)。

私が知る限り、Postgres は libperl.so が /lib64 にあることを期待していますが、Perl がインストールされたときに別の場所にインストールされていました。現在、libperl.so を使用するのは Postgres だけです。

残念ながら、私が入社する前に上司がすべてをセットアップし、実際に機能させる必要があると判断したばかりなので、すべてがこのサーバーにどのようにインストールされたかはわかりません。

両方のサーバーを見ても、インストールと構成に違いが見られず、一方が機能し、他方が機能しません。

私はこれでほとんど機知に富んでいます(Postgresのインストールで修正する必要がある最後の問題です)ので、提案をいただければ幸いです。

乾杯

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

perl - PostgreSQL PLPerl 関数で日付/時刻操作を行う方法

plperl で Postgres 関数 (ストアド プロシージャ) を書いているときに、「use Time::Piece;」などの perl モジュールをロードできないことを知りました。それを考えると、plperlで日付/時刻の操作と比較を処理する最良の方法は何ですか? plperlu を使用してモジュールをロードすることは、私にとって選択肢ではありません。

次のようなクエリに頼る必要がありました。

また、Perl で比較を行うために、SQL を使用してタイムスタンプをエポック時間に変換しました。これがばかげた質問であり、日付/時刻機能を処理するためのより直接的で簡単な方法があることを願っています。ありがとう。

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

postgresql - Postgres plperl - Decibles を平均する集計関数を作成する

日付のすべての dBm 値を取得して平均しようとしていますが、dBm を平均するには、ワットに変換し、平均してから、dBm に戻す必要があります。

これが私がplperlで試したことです。

この関数を実行すると発生するエラーは次のとおりです。

私はこれを正しく理解していると思いますが、それを理解できないようです。クエリは、日付ごとに集計し、その日付のすべての dbm 値を 1 つの値に平均化するだけで済みます。

アイデアや解決策はありますか?

編集: 適切な perl 変数名の更新された plsql コード

アップデート:

SQL を次のように変更しました。

そして、このエラーを取得します:

問題が発生している部分は、plperl のこのコード行にあります

具体的には、$dbm を 10 で割りたくない...

配列以外の倍精度データ型を使用するように関数を変更しようとしましたが、うまくいかないようでした。また、自動変換を行うことを期待して、MySQL のように 0 を追加しようとしましたが、失敗しました。

除算で使用する前に、配列データ型に必要な処理はありますか?

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

postgresql - postgresql plperlでファイルを読み込んで印刷する

OS ファイルシステムからファイルを読み取り、その内容を表として出力したいと考えています。最も望ましい方法は、plperl を使用することです (一時テーブルを使用する必要がなく、plperl はほとんどの postgres インストールにデフォルトで組み込まれているため)。残念ながら、私は perl に詳しくなく、機能が動作しません。ファイルは読み取られますが、何も印刷されません。

関数本体を確認して、どこが間違っているのか教えていただけますか?

ありがとう!

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

dbi - POSTGRESQL の PL/PERL の PERL DBI

Postgresql で作成された pl/perl 関数で DBI を使用して、外部データベースを選択できますか?

エラーが表示されます: DBI.pm を plperl にロードできません

(オラクルの外部データ ラッパーがあることは知っていますが、Oracle、MSSQL、または PG に対して実行された select ステートメントの結果セットを格納し、Postgres に格納する必要があるだけです。)

これが私の機能です(現時点では接続文字列のみ):