2

テキストを入力として受け取る関数があります。パラメータの最大長が 256 であることに注意してください。長いテキストを渡すにはどうすればよいですか?

コード例:

CREATE FUNCTION Test(nameid text)
.... # do something # ....

最後に存在しないため、長さ nameid > 256 の場合、エラーが発生します\0。したがって、postgresstrcat_sはパラメーターを切り詰める (?) と思います。任意の長さのパラメータ テキストを渡す簡単な方法はありますか?

varchar(1024)代わりにすでに試しましたがtext、機能していません。同じ結果: 256 文字で切り捨てます。

編集

SPI libと組み合わせて使用​​しています。C コードから plpg 関数を呼び出します。256 のエラーは私のものでした (休憩が必要です)。strcpy_s256文字制限で使用しました:\ [解決済み]

4

1 に答える 1

-1

Postgresql で関数を作成するときは、「可変文字」を指定するだけで、テキスト パラメータに「テキスト」を使用するのと同じで、256 文字をはるかに超える文字を使用できるはずです...

例えば:

CREATE OR REPLACE FUNCTION aaa.function_name(integer, character varying)
RETURNS refcursor AS...

よろしく

于 2013-01-18T14:44:50.177 に答える