skip to Main Content

I’m using pgAdmin, and I want to have a simple raise notice; referring to this, I entered RAISE NOTICE 'note'; and got this error:

ERROR:  syntax error at or near "RAISE"
LINE 1: RAISE NOTICE 'note';

The only way I could manage to get an output was by using this (which I don’t understand well either):

DO $$
BEGIN
RAISE NOTICE 'note';
END;
$$ LANGUAGE plpgsql

And got this output:

NOTICE:  note
DO

Could someone please explain this?

2

Answers


  1. RAISE is a PL/pgSQL command and can only be used inside PL/pgSQL. The DO command creates an anonymous PL/pgSQL block (something like a "temporary procedure") and therefor you can use RAISE inside that PL/pgSQL code.

    RAISE can not be used in plain SQL, that’s why you get the error

    Login or Signup to reply.
  2. Wrap RAISE into a procedure

    create procedure raise_notice (s text) language plpgsql as 
    $$
    begin 
        raise notice '%', s;
    end;
    $$;
    

    and call it in SQL

    call raise_notice('note');
    

    For PG version before 11 create a function that returns void with the same body and select from it in SQL

    select raise_notice('note');
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search