PL/pgSQL関数をVARCHAR引数で記述しようとしていますが、これは制限する必要があります。 5つの文字のサイズに制限VARCHARパラメーターを指定して、機能を次の点を考慮PL/pgSQL関数でVARCHARをパラメータとして使用
CREATE OR REPLACE FUNCTION do_nothin(v_value VARCHAR(5))
RETURNS TEXT AS
$$
DECLARE
BEGIN
RETURN v_value;
END;
$$
LANGUAGE plpgsql;
私は5よりも大きいテキストでこの関数を呼び出すと、それが作業を行います。
DO $$
DECLARE
BEGIN
PERFORM do_nothin('123456');
END;
$$
それは私に与えます結果 '123456'、なぜですか?これは私に誤りの権利を与えるべきですか?
私はこのようなvarchar型定義する場合:
DO $$
DECLARE
v_mytext VARCHAR(5);
BEGIN
v_mytext := '123456';
END;
$$
を期待どおりには私にエラーを与える:関数の大きすぎる引数がある場合に
ERROR: value too long for type character varying(5) CONTEXT: PL/pgSQL function inline_code_block line 5 at assignment SQL state: 22001
は、私はこのエラーがスローされたいです、しかしどのように?