
PL/pgSQL を使用し更新処理を行いたいのですが、
パラメータの数が多すぎるのか
以下のエラーでデータベースにファンクションを定義出来ません。
ERROR: functions cannot have more than 100 arguments
SQLステート:54023
可変長引数で作成すると、データベースに定義は出来るのですが
ファンクション実行時に同様のエラーが発生し更新処理が行えません。
PL/pgSQL の引数を100以上使用出来る様にする設定等、存在するのであれば
教えて頂きたいです。
環境は以下の内容です。
CentOS-6.2-x86_64
Apache/2.2.15
PostgreSQL 9.1.3
PHP Version 5.3.3 (PDOを使用しています)
No.1ベストアンサー
- 回答日時:
100 以上の引数をもった関数を定義できるようにするには、ソースコードを修正してコンパイルしなおす必要があります。
ヘッダファイル src/include/pg_config_manual.h 内の定数 FUNC_MAX_ARGS を修正してください。ソースコードのコメントには約 600 まで増やせるということです。
100 以上の引数をもつ関数を定義すること自体、設計に何らかの問題がありそうなので、そちらを見なおしたほうがよいと思います。
あるいは、引数を配列や複合型で渡すことを考えたほうがいいかもしれません。
回答ありがとうございます。
ご指摘の通りファンクションの設計に問題があると思います。
MySqlよりコンバートしているのですが、トランザクションの各カラムをすべてファンクションに送り、ファンクション内で各テーブルの更新及びトランザクションの追加処理を行っているため今回ご質問させて頂いた現象が発生してしまいました。
トランザクションの追加処理はPHP側で行いトリガで各テーブルの更新ファンクションをコールする形に修正しようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
createdbでいきなりつまづいて...
-
PostgreSQLの再インストールに...
-
PostgreSQLについて教えてくだ...
-
ディスク上のサイズの乖離が大...
-
Windows版 pg_dumpの結果をログ...
-
ソケットの異常終了について
-
AccessのOLEオブジェクト型につ...
-
新規作成したPostgresqlデータ...
-
CSVファイルをBULK INSERTでSQL...
-
Access2010でリボン等を非表示...
-
Query OK, 0 rows affected
-
pg_restoreでエラー
-
マインクラフトエラー
-
アクセスで、OLEサーバーも...
-
SQL+Plusの訂正
-
date型に空白を入れるとエラー...
-
関数引数に対する制限値チェッ...
-
Postgresql 新規作成したサーバ...
-
LinuxからWindowsへのリストア...
-
CentOS7でPostgreSQLのデータベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLについて教えてくだ...
-
createdbでいきなりつまづいて...
-
SJISのDBは作れますか?
-
PostgresSQLの環境設定について
-
PostgreSQLの再インストールに...
-
quoteした文字列を使ったSQL文...
-
\\copyコマンドでのCSV取り込み...
-
IDの払い出し(文字列)
-
文字コードエラー
-
PL/pgSQL 引数の数
-
initdbの文字コードと違う文字...
-
文字エンコーディングをEUC_JP...
-
ログイン履歴
-
データ型の変更について
-
すでにあるsqlファイルを使用し...
-
RDBとRDBMSの違いは何!?
-
PostgreSQLのpsqlでユーザの扱...
-
phpPgAdminの使い方について
-
postgresのdatabase名と、そのe...
-
時間のフォーマット
おすすめ情報