Re: Starting with pl/pgsql..

From: Terry Yapt <yapt(at)technovell(dot)com>
To: Josh Jore <josh(at)greentechnologist(dot)org>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Starting with pl/pgsql..
Date: 2002-07-06 13:43:42
Message-ID: 3D26F40E.8D3C8AEB@technovell.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi Josh,

> 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.

Thanks, I have read all of them (I think so)...

> 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.

I have never put double-quoting in any table, identifier or so. But I have copy/paste from pgadmin II and it put there that quotes.

> > 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;
>

I have substitute my double-quotes with single quotes and here the results:

-*- It runs fine from pgadmin.
-*- It runs fine from psql (linux system).

But, I wants to test inserting more rows and then I have re-created (drop and create) table 'pepe' varying column 'a' from numeric(2) to numeric(8), in this way:
=============
Table "pepe"
Column | Type | Modifiers
--------+-----------------------+-----------
a | numeric(8,0) | not null
b | character varying(50) |
Primary key: pepe_pkey
=============

Then If I call the function from 'psql' it give me this error (but with pgadmin 2 the same 'select x(10,40) runs fine):

NOTICE: Error occurred while executing PL/pgSQL function x
NOTICE: line 9 at SQL statement
ERROR: Relation 16651 does not exist

Thanks....

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Josh Jore 2002-07-06 15:13:43 Re: Starting with pl/pgsql..
Previous Message Josh Jore 2002-07-06 12:54:22 Re: Starting with pl/pgsql..