Casting with character and character varying

From: "David Loh" <david(at)bizsurf(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: Casting with character and character varying
Date: 2003-03-19 05:43:48
Message-ID: 007001c2edda$848c8410$b7d273cb@davidloh
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi all.
Recently I face some problem with casting character type variable and
varchar variable.
The situation was like: I had 2 table, on table A, the user_name is defined
as character(32), and table B uses varchar(32). I have 1 function and a
trigger to manipulate with these data.

Here's the function: (NEW = tableB)
------------------------------
create or replace function prepaid () returns trigger as '
declare Rec tableA%ROWTYPE;

begin
if NEW.status != 2 then
return NEW;
else
select into Rec * from tableA where user_name = trim(trailing '' '' from
cast(NEW.user_name as varchar)) and user_type = ''T'';
if not found then
return NEW;
end if;

insert into temptable values (tableA.FieldA);
end if;
return NEW;
end;
' language 'plpgsql';
-------------------------
supposingly the insert will insert the value of field A in table into
temptable (declare as varchar(100)), instead of inserting single row, the
insert actually insert all data from tableA to temptable (if there's 10 row
in tableA, the insert statement will insert all to temptable), that's weird.

Then i tried with cast(trim(trailing '' '' from NEW.user_name)::varchar as
text), and it's returns me with nothing (suppose there'll be 1 record
matched).

If any of you guys willing to help me out, I'll apprepriate it. Or you may
point me to some postgresql casting tutorial.

Thanks.

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tomasz Myrta 2003-03-19 08:12:06 Re: Number of rows affected by an update
Previous Message Rajesh Kumar Mallah 2003-03-19 04:59:17 Re: showing records from the last 20 min