Re: plpgsql question - simple I would have thought

Lists: pgsql-novice
From: "Walker, Jed S" <Jed_Walker(at)cable(dot)comcast(dot)com>
To: "'pgsql-novice(at)postgresql(dot)org'" <pgsql-novice(at)postgresql(dot)org>
Subject: plpgsql question - simple I would have thought
Date: 2005-04-01 21:52:20
Message-ID: 41669DC6FE3B80449A33A4DD46DB370A09E7E94A@entcoexch15.broadband.att.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-novice

This should be simple, but it's not. I think I'm just missing something
simple. I converted an oracle PL/SQL program to plpgssql, but it wouldn't
work, so I tried some very simple blocks, and even they fail. As far as I
can tell, the syntax is all valid.

Any help?

(postgres) robux:/opt/postgres/VRNJED
->cat it.sql

\echo raise notice attempt
begin
raise notice 'hello';
end;

\echo select into attempt
declare
i_int integer;
begin
select count(1) into i_int from vrnsys_version;
end;

(postgres) robux:/opt/postgres/VRNJED
->psql -U vrnsys
Welcome to psql 7.3.2, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

VRNJED=> \i it.sql
raise notice attempt
psql:it.sql:4: ERROR: parser: parse error at or near "raise" at character 9
psql:it.sql:5: WARNING: COMMIT: no transaction in progress
COMMIT
select into attempt
psql:it.sql:9: ERROR: parser: parse error at or near "integer" at character
17
psql:it.sql:11: ERROR: parser: parse error at or near "select" at character
8
psql:it.sql:12: WARNING: COMMIT: no transaction in progress
COMMIT
VRNJED-> \q
(postgres) robux:/opt/postgres/VRNJED
->

Jed S. Walker
Senior Database Administrator
Comcast Media Centers
Phone: 303.267.6759
Email: jed_walker(at)cable(dot)comcast(dot)com

CONFIDENTIAL NOTICE
This electronic mail transmission and any accompanying
documents contain information belonging to the sender, which may be
confidential and legally privileged. If you are not the intended recipient,
any disclosure, copying, distribution or action taken in reliance on the
message is strictly prohibited. If you have received this message in error,
please delete it immediately. Thank You


From: Michael Fuhr <mike(at)fuhr(dot)org>
To: "Walker, Jed S" <Jed_Walker(at)cable(dot)comcast(dot)com>
Cc: "'pgsql-novice(at)postgresql(dot)org'" <pgsql-novice(at)postgresql(dot)org>
Subject: Re: plpgsql question - simple I would have thought
Date: 2005-04-02 00:38:10
Message-ID: 20050402003809.GA8762@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-novice

On Fri, Apr 01, 2005 at 02:52:20PM -0700, Walker, Jed S wrote:
>
> \echo raise notice attempt
> begin
> raise notice 'hello';
> end;
>
> \echo select into attempt
> declare
> i_int integer;
> begin
> select count(1) into i_int from vrnsys_version;
> end;

PL/pgSQL is for writing user-defined functions, so you need some
CREATE FUNCTION statements.

http://www.postgresql.org/docs/7.3/interactive/plpgsql.html

> Welcome to psql 7.3.2, the PostgreSQL interactive terminal.

That version is pretty old -- if you must use 7.3 then at least
consider upgrading to 7.3.9. See the Release Notes for a summary
of bug fixes and other changes:

http://www.postgresql.org/docs/7.3/interactive/release.html

If you're not committed to using 7.3 then you might want to check
out 8.0.2 when it's released (which should be Real Soon Now).

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/