RE: Hrm...why is this wrong? - Mailing list pgsql-sql

From Michael Davis
Subject RE: Hrm...why is this wrong?
Date
Msg-id 01C08F4D.22CA2220.mdavis@sevainc.com
Whole thread Raw
In response to Hrm...why is this wrong?  (Ken Corey <ken@kencorey.com>)
List pgsql-sql
When declaring parameters try using varchar rather than varchar(255).  I have used text successfully in the past.

-----Original Message-----
From:    Ken Corey [SMTP:ken@kencorey.com]
Sent:    Sunday, February 04, 2001 6:38 AM
To:    pgsql-sql@postgresql.org
Subject:    Hrm...why is this wrong?

In trying to use a plpgsql stored proc, I'm getting an error I don't 
understand.

When the select at the bottom of this email is executed, I'm getting the 
message:

ERROR:  parser: parse error at or near "$1"

Any ideas? <Gads I hope it's not something amazingly simple, but I'm sure it 
is...;^>

-- 
Ken Corey, CTO    Atomic Interactive, Ltd.

select 'drop FUNCTION IU_EMPLOYEE(varchar(255), ...);' as Progress;
drop FUNCTION IU_EMPLOYEE( varchar(255), varchar(255), varchar(255), varchar(255), varchar(255), varchar(255),
varchar(255),varchar(255), varchar(255), varchar(255), varchar(255));
 

select 'create FUNCTION IU_EMPLOYEE(varchar(255), ...)' as Progress;
create FUNCTION IU_EMPLOYEE( varchar(255), varchar(255), varchar(255), varchar(255), varchar(255), varchar(255),
varchar(255),varchar(255), varchar(255), varchar(255), varchar(255))
 
RETURNS INT4
AS ' DECLARE   user_name_in alias for $1;   passwd_in alias for $2;   firstname_in alias for $3;   lastname_in alias
for$4;   company_in alias for $5;   addr1_in alias for $6;   addr2_in alias for $7;   city_in alias for $8;   state_in
aliasfor $9;   postcode_in alias for $10;   country_in alias for $11;   userid_calc INT4;   companyid_calc INT4; BEGIN
 
   userid_calc := 0;
   select into companyid_calc COMPANY_ID from COMPANY     where COMPANY_NAME = company_in;   if (companyid_calc is
null)  then     insert into COMPANY (COMPANY_NAME) values (company_in);     companyid_calc :=
currval(''company_company_id_seq'');  end if;
 
   if (companyid_calc is not null)   then     insert into EMPLOYEE ( COMPANY_ID ,              AUTHORIZED , RIGHTS ,
USERNAME, PASSWD , FIRSTNAME ,              LASTNAME , ADDR1 , ADDR2 , CITY , STATE , POSTCODE ,              COUNTRY)
     values (           companyid_calc,0,0,username_in, password_in, firstname_in,           lastname_in,
company_in,addr1_in,addr2_in,city_in,          state_in,postcode_in,country_in        );     userid_calc :=
currval(''employee_employee_id_seq'');  else     rollback;     return 0;   end if;
 
   return userid_calc;
 END;'
LANGUAGE 'plpgsql';

select iu_employee('handtest','password','hand','test','handcompany',
'handaddr','handaddr2','handcity','handstate','handpostcode','handcountry');



pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Re: PL/PGSQL function with parameters
Next
From: Karel Zak
Date:
Subject: Re: Problem with Day of Week