アプリ版:「スタンプのみでお礼する」機能のリリースについて

Postgresを使っています。
あるプロシージャのCREATEは成功しているのですが、
(psql -U hoge -f hoge.sql -a -n hoge > hoge.log 2>&1でCREATEが返る)
実際に呼び出すと、
Function 'hoge(int4, int4, int4, int4, unknown, unknown, unknown, int4, unknown, unknown, unknown)' does not exist
が返ります。

そこで試行錯誤してパラメータ数を変更してみたところ、
hoge(int2, int2, int4, int2, int2, int4, int2, int2, varchar(40),
char(1), varchar(5))
ではNGで
hoge(int2, int2, int4, int2, int2, int4, int2, int2, varchar(40), varchar(5))
はOKになります。
hoge(int2)
などはもちろんOKになります。
どうしても、char(1)のやつでエラーになるので、
これのタイプをint2やvarchar(1)に変えてみましたが
結果は同じでした。

実はCREATEが成功していないということがあるでしょうか?
かれこれ悩んで2日目ですがどこを調べたらよいか見当がつきません。
ありがちなエラーがお分かりになりましたら、どうぞご指摘ください。

A 回答 (1件)

もう少し情報が欲しいと思います。


基本的な情報としては、ご利用のOS名とVersion、
PostgreSQLのVersionがあると解りやすいことが多いです。

さらに、psqlのコマンドラインから、
\d テーブル名
と入力すると、テーブルの構成が表形式で出力されますので、
この結果はどうなっていますか?

また、関数hogeでは、実際にどんな処理をしているのでしょう?
差し支えない程度にこれらの情報を出していただければ、
解るかもしれません。

 蛇足ですが、SQLは、DBMSによって少なからず文法が異なります。SQL
辞典のような複数のDBMSについて扱った本等を参考にする際には、Postgr
esに対応した形式になっているか気を配る必要があると思いますが、その
辺は大丈夫ですか?

参考URL:http://www.postgresql.jp/document/index.php3
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す