Thread: Error when following a documentation

Error when following a documentation

From
PG Doc comments form
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/10/static/plpgsql-cursors.html
Description:

As specified On page
https://www.postgresql.org/docs/10/static/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING
i am trying to run below commands 
-------------------------------------------------
DECLARE
    key integer;
    curs4 CURSOR FOR SELECT * FROM tenk1 WHERE unique1 = key;
BEGIN
    key := 42;
    OPEN curs4;
--------------------------------------------------------
but i am getting below errors, please help
--------------------------------------------------------
postgres=# 
postgres=# SELECT VERSION();
                                                 version
            
                
-----------------------------------------------------------------------------------------
----------------
 PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7
20120313 (Red Hat 4.
4.7-18), 64-bit
(1 row)

postgres=# DECLARE
postgres-#     key integer;
ERROR:  syntax error at or near "integer"
LINE 2:     key integer;
                ^
postgres=#     curs4 CURSOR FOR SELECT * FROM tenk1 WHERE unique1 = key;
ERROR:  syntax error at or near "curs4"
LINE 1: curs4 CURSOR FOR SELECT * FROM tenk1 WHERE unique1 = key;
        ^
postgres=# BEGIN
postgres-#     key := 42;
ERROR:  syntax error at or near "key"
LINE 2:     key := 42;
            ^
postgres=#     OPEN curs4;
ERROR:  syntax error at or near "OPEN"
LINE 1: OPEN curs4;
        ^
postgres=# 

--------------------------------------------------------

Re: Error when following a documentation

From
"David G. Johnston"
Date:
On Tuesday, August 28, 2018, PG Doc comments form <noreply@postgresql.org> wrote:

postgres=# DECLARE
postgres-#     key integer;
ERROR:  syntax error at or near "integer"
LINE 2:     key integer;
                ^

You are writing pl/psql language code at the SQL input prompt.  That won't work.  You have to either use the SQL DO command or write a function.

David J.