db fiddle isn't working now. I will upload the code later...
SELECT COUNT (*) FROM sys.odcivarchar2list ('2', '2');
this query work without using the key word table. But in a dynamic query:
DECLARE
c INTEGER;
towtimestwo SYS.odcivarchar2list := sys.odcivarchar2list ('2', '2');
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT (*) FROM :1'
INTO c
USING towtimestwo;
DBMS_OUTPUT.put_line (c);
END;
it doesn't work:
invalid table name
therefore I must add the keyword.
DECLARE
c INTEGER;
towtimestwo SYS.odcivarchar2list := sys.odcivarchar2list ('2', '2');
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT (*) FROM table( :1)'
INTO c
USING towtimestwo;
DBMS_OUTPUT.put_line (c);
END;
Why?
and I'm using Oracle 19.0