Write psql script to find a phase `%abc%123%` in a given table `myTable`.
Answer:
DO $$ 
DECLARE
    v_column_name text;
    p_table_name text := 'myTable'; 
    search_pattern text := '%abc%123%';
    query_string text;
BEGIN
    -- Create a dynamic query to search for the pattern in all columns
    FOR v_column_name IN 
        SELECT column_name
        FROM information_schema.columns
        WHERE table_name = p_table_name
    LOOP
        query_string := format(
            'SELECT * FROM %I WHERE %I::text LIKE $1',
            p_table_name, v_column_name
        );
        -- Execute the dynamic query
        EXECUTE query_string USING search_pattern;
    END LOOP;
END $$;
No comments:
Post a Comment