Re: variables in procedures - Mailing list pgsql-sql

From Josh Berkus
Subject Re: variables in procedures
Date
Msg-id web-517138@davinci.ethosmedia.com
Whole thread Raw
In response to variables in procedures  (Martín Marqués <martin@bugs.unl.edu.ar>)
List pgsql-sql
Martin,

> How can I distinguish between the name and the value of a variable?

You need to name your variables something *different* from your column
names.  Otherwise, you will get unexpected errors.

A practice I usually follow is prefixing my column-substitiution
variables with "v_".  This allows me, and the PL/pgSQL parser, to keep
the variables straight from the columns.  I also need to fix your
procedure in a couple of places.  Thus:

CREATE FUNCTION test(VARCHAR) RETURNS INTEGER AS '
DECLARE   v_col1 ALIAS FOR $1;  v_result INT;
BEGIN select col1 INTO v_result    from tab where col1 = v_col1; RETURN v_result;
END;´ LANGUAGE 'plpgsql';

Other SQL-procedural languages (e.g. Transact-SQL) force you to prefix
your variables with special characters.  In PL/pgSQL, it's up to you to
maintain consistency.

-Josh Berkus
______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco
 


pgsql-sql by date:

Previous
From: Jeff Eckermann
Date:
Subject: Re: contracting tables
Next
From: Roberto Mello
Date:
Subject: Re: Any available solution to port CONNECT BY of oracle to postgresql