PSQL - Mailing list pgsql-novice

From Atif Jung
Subject PSQL
Date
Msg-id AANLkTinnWldWIcoX9QRPzkCa-OYLqTRZejmunU3-JFjJ@mail.gmail.com
Whole thread Raw
Responses Re: PSQL  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-novice
I'm having problems with the following stored procedure. The problematic line is the one in red. Any help greatly appreciated.
 
CREATE or replace FUNCTION converttojulian(datex DATE) RETURNS CHAR(5) AS $$
   DECLARE
   result  CHAR(5);
   m1  INTEGER;
   d1  INTEGER;
   y1  INTEGER;
   year  CHAR(4);
   d2  INTEGER;
   days  CHAR(3);
   days1  CHAR(3);
   date2  DATE;
BEGIN
   m1 := EXTRACT (MONTH FROM DATE datex);
   d1 := EXTRACT (DAY FROM DATE datex);
   y1 := EXTRACT (YEAR FROM DATE datex);
   date2 := MDY(m1,d1,y1);
   d2 := CAST((datex -date2)+1 AS INTEGER);
   year := SUBSTR(CAST(y1 AS CHAR(4)),1,4);
   days1 := SUBSTR(CAST(d2 AS CHAR(3)),1,3);
   IF d2 < 10 THEN
      days := '00' || SUBSTR(days1,1,1);
   ELSEIF d2 < 100 THEN
      days := '0' || SUBSTR(days1,1,2);
   ELSE
      days := SUBSTR(days1,1,3);
   END IF;
   result := SUBSTR(year,3,2) || days;
   RETURN result;
END;
$$ LANGUAGE plpgsql;
 
The error reads :
 
psql:converttojulian.sql:32: ERROR:  syntax error at or near "$1"
LINE 1: SELECT  EXTRACT (MONTH FROM DATE  $1 )
                                                                            ^

QUERY:  SELECT  EXTRACT (MONTH FROM DATE  $1 )
CONTEXT:  SQL statement in PL/PgSQL function "converttojulian" near line 12
 
It doesn't seem to like the use of the input paramater datex. I've tried using an alias but still get the same problem.
 
Thanks

Atif

pgsql-novice by date:

Previous
From: Greg
Date:
Subject: Re: Protocol & Transmitted Field Data
Next
From: Tom Lane
Date:
Subject: Re: PSQL