> 
> Version: PG-13.3 with pgAdmin4
> 
> 
> 

How do I escape single quotes in dynamic SQL in a function?

Here is my code

```
DO $$
DECLARE
    uuid text;
BEGIN
        uuid := 'X-2132135671';
        -- Create a function using above id
        EXECUTE format(E'CREATE FUNCTION system_uid() RETURNS text AS \'SELECT %L\' LANGUAGE SQL IMMUTABLE;', uuid);
END;
$$ LANGUAGE plpgsql;

```

here when I try to execute the code I am getting error as below

```
ERROR:  syntax error at or near "X"
LINE 1: ...UNCTION system_uid() RETURNS text AS 'SELECT 'X-21321356...
                                                             ^
QUERY:  CREATE FUNCTION system_uid() RETURNS text AS 'SELECT 'X-2132135671'' LANGUAGE SQL IMMUTABLE;
CONTEXT:  PL/pgSQL function inline_code_block line 7 at EXECUTE
SQL state: 42601

```

Please suggest correct way of doing this.