I am trying to create a function that creates a user
and adds a row to a table.  It produces no warnings or
errors when I create the function but when I attempt
to execute it I get a syntax error.  I do not
understand why this is happening.  Any help would be
greatly appreciated.

SELECT create_author( 'name', 'username', 'password'
);

ERROR: syntax error at or near "$1" at character 14
CONTEXT: PL/pgSQL function "create_author" line 7 at
SQL statement

Here is the code:

CREATE OR REPLACE FUNCTION create_author (
VARCHAR(32), VARCHAR(32), VARCHAR(32) ) 
RETURNS INTEGER AS '
        DECLARE
                name_           ALIAS FOR $1;
                username_       ALIAS FOR $2;
                password_       ALIAS FOR $3;
                authorid_       INTEGER;
        BEGIN
                CREATE USER username_ WITH ENCRYPTED PASSWORD
password_ IN GROUP authors;

                INSERT INTO Authors 
                        ( Name, Username ) 
                VALUES 
                        ( $1, $2 );
                SELECT Max( AuthorID ) INTO authorid_ FROM Authors;

                RETURN authorid_;
        
        END;
' LANGUAGE 'plpgsql'
SECURITY INVOKER
RETURNS NULL ON NULL INPUT;


                
__________________________________
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to