I nomi di tabelle e colonne non possono essere passati come variabili di collegamento, no. Il punto centrale delle variabili di associazione è che Oracle può generare un piano di query una volta per l'istruzione e quindi eseguirlo molte volte con valori di variabili di associazione diversi. Se l'ottimizzatore non sa a quale tabella si sta accedendo o su quali colonne vengono selezionate e filtrate, non può generare un piano di query.
Se la tua preoccupazione riguarda gli attacchi SQL injection e supponendo che l'SQL dinamico sia effettivamente necessario (il più delle volte, la necessità di ricorrere all'SQL dinamico implica problemi con il modello di dati), puoi utilizzare il DBMS_ASSERT
pacchetto per verificare che i nomi delle tabelle e delle colonne non contengano SQL incorporato.