Possible to pass a table name via a variable to a function?

From: <ellen_n_paul_at_my-dejanews.com>
Date: Wed, 09 Dec 1998 16:05:55 GMT
Message-ID: <74m751$8op$1_at_nnrp1.dejanews.com>



Since I got such super help from you all on my first question I am hoping you can help with another:

FUNCTION mand_tabval(test_field IN VARCHAR2, tab_name IN VARCHAR2,field_name IN VARCHAR2, err_cnt_in IN NUMBER, field_invalid_msg IN VARCHAR2, blank_mand_msg IN VARCHAR2) RETURN NUMERIC IS err_msg VARCHAR(50); var_count NUMERIC; errors NUMERIC;

BEGIN
  IF test_field is null THEN

     err_msg:=  field_name||blank_mand_msg;
     INSERT INTO netout_msgs (net_input_data) values (err_msg);
     errors := err_cnt_in + 1;
     RETURN(errors);
  ELSE
     SELECT count(*) into var_count FROM tab_name
      WHERE test_field = tab_name||'.'||field_name;
        IF var_count <= 0 THEN
          err_msg:= field_name||field_invalid_msg;
          INSERT INTO netout_msgs (net_input_data) VALUES (err_msg);
          errors := err_cnt_in + 1;
          RETURN(errors);
        END IF;

  END IF;
END; I get an error (PLS-00356) on tab_name ("'Tab_name' must be a table to which user has access").

Is it possible to pass the table name in as a variable?

Ellen V.

-----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own Received on Wed Dec 09 1998 - 17:05:55 CET

Original text of this message