Thread: There is error at the examples in PL/pgSQL

There is error at the examples in PL/pgSQL

From
"Lu Raymond"
Date:
Hello,all

I use your a example of PL/pgSQL, but I found some errors when I execute
these codes. The details are followings,

First, I create a exam.sql that includes these codes as followings,

CREATE TABLE emp (
    empname text,
    salary int4,
    last_date datetime,
    last_user name);

CREATE FUNCTION emp_stamp () RETURNS OPAQUE AS'
    BEGIN
        -- Check that empname and salary are given
        IF NEW.empname ISNULL THEN
            RAISE EXCEPTION ''empname cannot be NULL value'';
        END IF;
        IF NEW.salary ISNULL THEN
            RAISE EXCEPTION ''% cannot have NULL salary'', NEW.empname;
        END IF;

        -- Who works for us when she must pay for?
        IF NEW.salary < 0 THEN
            RAISE EXCEPTION ''% cannot have a negative salary'',
NEW.empname;
        END IF;

        -- Remember who changed the payroll when
        NEW.last_date := ''now'';
        NEW.last_user := getpgusername();
        RETURN NEW;
    END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
    FOR EACH ROW EXECUTE PROCEDURE emp_stamp();



Secondly, I execute exam.sql and the postgress can create the table emp,
the function emp_stamp() and the trigger emp_stamp seccessfully.But when I
insert one record to table emp, there are some errors on the screen.
   the insert statement is followings,
      INSERT INTO emp Values('','','20001220','raymond');

the error of screen is:
NOTICE: plpgsql: ERROR during compile of emp_stamp near line 1
"RROR: parse error at or near "

Why? and what wrong is it? Please give me reply as possible as you can.
Thanks!






_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.


Re: There is error at the examples in PL/pgSQL

From
Peter Eisentraut
Date:
Lu Raymond writes:

> the error of screen is:
> NOTICE: plpgsql: ERROR during compile of emp_stamp near line 1
> "RROR: parse error at or near "

I might be making this up, but I seem to recall that this is caused by
improper line endings on Windows-like hosts.  PL/pgSQL expects its input
to follow Unix convention.  (This has been fixed in 7.1 as I recall.)

--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/