Howdy.  Creating a function to access different tables depending
on the arguments. However, am having excessive problems.

Current code is as follows:

CREATE FUNCTION access(varchar,varchar) RETURNS INT4 AS '
DECLARE
        lcl_field ALIAS FOR $1;
        lcl_table ALIAS FOR $2;
        lcl_max INT;
BEGIN

SELECT max(lcl_field) INTO lcl_max FROM lcl_table;

RETURN lcl_max;

END;

' LANGUAGE 'plpgsql';

However, if I execute the following code

SELECT getsequence('f1','t1');

I get an error:

  psql:sequence.db:35: ERROR:  parser: parse error at or near "$2"

(What I really want is to execute a "SELECT max(f1) FROM f2")

The output from the postmaster is:

000528.19:45:45.682  [9553] CommitTransactionCommand
000528.19:45:45.713  [9553] StartTransactionCommand
000528.19:45:45.713  [9553] query: SELECT access('f1','t1'));
000528.19:45:45.717  [9553] ProcessQuery
000528.19:45:45.725  [9553] query: SELECT  max( $1 ) FROM  $2
000528.19:45:45.726  [9553] ERROR:  parser: parse error at or near "$2"
000528.19:45:45.726  [9553] DEBUG:  Last error occured while executing PL/pgSQL 
function getsequence
000528.19:45:45.726  [9553] DEBUG:  line 6 at select into variables
000528.19:45:45.726  [9553] AbortCurrentTransaction

Any ideas? I've fiddled with the variables and procedures a few
times but I can't quite get a breakthrough.

tia,

   -Greg

------------------------------------------------------------------
Strategic Planning Manager                        Dr. Greg Wickham  
Information Technology Services     ______________________________
Deakin University                   Voice: (+61 3) 5227 8912
Geelong VIC 3217                    eMail: [EMAIL PROTECTED]
Australia                       WWW: http://www.deakin.edu.au/~gjw
------------------------------------------------------------------
thEsepRetzelsareMakingmetHirstythEsepRetzelsareMakingmetHirstythEs

Reply via email to