Skip to content

Instantly share code, notes, and snippets.

@joshlk
Last active August 15, 2018 13:23
Show Gist options
  • Save joshlk/a045767ef51de6aece39cbc05f50452a to your computer and use it in GitHub Desktop.
Save joshlk/a045767ef51de6aece39cbc05f50452a to your computer and use it in GitHub Desktop.
PostgreSQL codesheet

Force cast conversion to integer or output null:

CREATE OR REPLACE FUNCTION convert_to_integer(v_input text)
RETURNS BIGINT AS $$
DECLARE v_int_value BIGINT DEFAULT NULL;
BEGIN
    BEGIN
        v_int_value := v_input::BIGINT;
    EXCEPTION WHEN OTHERS THEN
        RAISE NOTICE 'Invalid integer value: "%".  Returning NULL.', v_input;
        RETURN NULL;
    END;
RETURN v_int_value;
END;
$$ LANGUAGE plpgsql;

Floats:

CREATE OR REPLACE FUNCTION convert_to_float(v_input text)
RETURNS FLOAT AS $$
DECLARE v_int_value FLOAT DEFAULT NULL;
BEGIN
    BEGIN
        v_int_value := v_input::FLOAT;
    EXCEPTION WHEN OTHERS THEN
        RAISE NOTICE 'Invalid float value: "%".  Returning NULL.', v_input;
        RETURN NULL;
    END;
RETURN v_int_value;
END;
$$ LANGUAGE plpgsql;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment