Re: Starting with pl/pgsql.. - Mailing list pgsql-novice

From Josh Jore
Subject Re: Starting with pl/pgsql..
Date
Msg-id Pine.BSO.4.44.0207060748590.13956-100000@kitten.greentechnologist.org
Whole thread Raw
In response to Starting with pl/pgsql..  (Terry Yapt <yapt@technovell.com>)
List pgsql-novice
Ok so I don't know a thing about Oracle. If you didn't already notice them
there are multiple docs on techdocs.postgresql.org on porting from oracle.

Now your function:

>                 Table "pepe"
>  Column |         Type          | Modifiers
> --------+-----------------------+-----------
>  a      | numeric(2,0)          | not null
>  b      | character varying(50) |

> -- Function: x(int4, int4)
> CREATE FUNCTION "x"("int4", "int4") RETURNS "int4" AS '  DECLARE

You may want to avoid the use to double-quoting your identifiers. Without
the quotes PostgreSQL will fold the case to the default lower case and
you're restricted to single word identifiers. With quotes you can go and
create identifiers like "BiCap" or even "multiple words". I'll just define
that as a problem waiting to happen. I wouldn't go there unless you had
some real reason to force case sensitivity.

>      inicio alias for $1;
>      final alias for $2;
>      --
>      texto varchar;
>   BEGIN
>     FOR X IN inicio..final LOOP
>        texto := "ESTE ES: " || X;

Again double quotes. Substitute single quotes instead. Use double quotes
for identifiers and single quotes for identifiers. You are already in a
single-quoted section so quote the single quote ala:

texto := ''ESTE ES: '' || X;

>        INSERT INTO pepe VALUES (X, texto);
>     END LOOP;
>   END;
> ' LANGUAGE 'plpgsql';

Josh




pgsql-novice by date:

Previous
From: Andrew McMillan
Date:
Subject: Re: Carraige Return issue
Next
From: Terry Yapt
Date:
Subject: Re: Starting with pl/pgsql..