You can not. Instead, you need to pass it as a VARCHAR2 string, and then use Dynamic SQL:
CREATE PROCEDURE A(tab IN VARCHAR2) AS
BEGIN
EXECUTE IMMEDIATE 'INSERT INTO ' || tab || 'VALUES(123)';
END A;
Read Dynamic SQL and keep abreast of the problems that it can bring if they are unreasonable to use, such as lower performance, scalability and security.
source
share