問題タブ [plpgsql]
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.
exception - PostgreSQL カスタム例外?
Firebird では、カスタム例外を次のように宣言できます。
CREATE EXCEPTION EXP_CUSTOM_0 '例外: カスタム例外';
これらはデータベース レベルで保存されます。ストアド プロシージャでは、次のように例外を発生させることができます。
例外 EXP_CUSTOM_0 ;
PostgreSQL に同等のものはありますか?
database - クエリには、トリガー後の結果データの宛先がありません
トリガーに問題があります。新しい行を挿入すると、商品が売れていないかどうかがチェックされます。私はソフトウェアでそれを行うことができますが、DB でこれを行う方が良いと思います。
そして、これは挿入後のエラーです。
トリガーの何が問題になっていますか? それがなければうまくいきます。
regex - PL/pgSQL の正規表現置換
次の入力がある場合(引用符を除く):
入力が次のように変換されるように、複数のスペースをすべて単一のスペースに折りたたむにはどうすればよいですか。
これは、挿入/更新時のトリガー関数で使用されます (先頭/末尾のスペースは既に削除されています)。現在、入力に複数の隣接するスペースが含まれている場合は例外が発生しますが、挿入する前に単純に有効なものに変換したいと思います。
最善のアプローチは何ですか?PL/pgSQL の正規表現置換関数が見つからないようです。関数はありtext_replace
ますが、これは最大で 2 つのスペースを 1 つに折りたたむだけです (3 つの連続するスペースが 2 つに折りたたまれることを意味します)。この関数を何度も呼び出すのは理想的ではありません。
postgresql - Postgresデータベース内のすべてのテーブルを切り捨てる
再構築する前に、PostgreSQLデータベースからすべてのデータを定期的に削除する必要があります。これをSQLで直接行うにはどうすればよいですか?
現時点では、実行する必要のあるすべてのコマンドを返すSQLステートメントを思い付くことができました。
しかし、一度入手すると、プログラムで実行する方法がわかりません。
postgresql - Postgres FOR LOOP の構文エラー
postgres 関数に問題があります。
エラーがあります:
postgresql - PL / pgSQL関数に動的サブクエリを含めることはできますか?
PL/pgSQL関数を書いています。この関数には、フィルタリング情報を読み取るテーブルを(間接的に)指定する入力パラメーターがあります。
この関数には、入力引数に基づいてさまざまなテーブルからデータを選択できるビジネスロジックが組み込まれています。この関数は、メインクエリの実行に使用されるフィルタリングデータを返すサブクエリを動的に構築します。
私の質問は次のとおりです。
PL/pgSQL関数で動的サブクエリを使用することは「合法」ですか。理由はわかりませんが、この質問は次の質問に関連しています。
AFAIK、PL / pgSQLは、クエリエンジンによってキャッシュまたはプリコンパイルされます。動的サブクエリを生成する関数を持つことは、クエリエンジンの作業にどのように影響しますか?
postgresql - この関数を pL/pgSQl 関数として記述する方法は?
PL/pgSQL 関数にいくつかのビジネス ロジックを実装しようとしています。
関数に含めたいビジネス ロジックのタイプを説明する疑似コードをまとめました。
注: この関数はテーブルを返すため、次のようなクエリで使用できます。
SELECT A.col1, B.col1 FROM (SELECT * from some_table_returning_func(1, 1, 2, 3) as A), tbl2 as B;
pl/PgSQL 関数の擬似コードは次のとおりです。
次の質問があります。
関数を正しく記述するにはどうすればよいですか (つまり、生成された WHERE 句を使用してクエリを実行し、テーブルを返すには
テーブルと整数を受け取り、テーブル (another_table_returning_func) を返す PL/pgSQL 関数を作成するにはどうすればよいですか?
postgresql - スクリプトで参照するための PostgreSQL 格納パス
PostgreSQL にシステム パスを格納する適切な場所を見つけようとしています。
私がやろうとしているのは、COPY コマンドを使用して値をテーブルにロードすることです。ただし、定期的に同じファイル パスを参照するため、そのパスを 1 か所に格納したいと考えています。適切なパスを返す関数を作成しようとしましたが、COPY コマンドで関数を呼び出すと構文エラーが発生します。これが正しい方法かどうかはわかりませんが、とにかくコードを投稿します。
コピー コマンド:
関数の定義:
これを達成する方法について誰かが別の考えを持っている場合、私は提案を受け付けています。
アップデート:
私が受け取っているエラーは次のとおりです。
エラー: 「employee_scheduler」またはその付近で構文エラーが発生しました LINE 12: FROM employee_scheduler.get_csv_path('countries.csv')
次のステートメントを試してみましたが、うまくいきませんでした。
これを達成しようとしている方法は不可能だと思い始めています。他の誰かがこれを達成する方法について何か考えを持っていますか? copyステートメントを使用したい場合は、どこにでもパスをハードコーディングする必要があるかもしれません...
助けてくれてありがとう。
postgresql - copy from コマンドを使用してトリガーが起動されませんでした
copy from コマンドを使用してテーブルにデータを入力しました。これにより、サマリー テーブルにレコードが作成されます。コピー コマンドが正常に実行された後、サマリー テーブルにレコードが表示されません。誰でも私に光を当てることができますか?Pls は以下のテーブルとストア プロシージャを見つけます:-
postgresql - PostgreSQL で文字列内の特定の文字の最初と最後の出現を見つける方法
文字列内の特定の文字の最初と最後の出現を見つけたい。例として、「2010-####-3434」という名前の文字列を考え、検索する文字が「#」であるとします。文字列内のハッシュの最初の出現は 6 番目の位置であり、最後の出現は 9 番目の位置です。