Oracle
 sql >> Database >  >> RDS >> Oracle

Parametrizzazione del nome della tabella nel file di input sqlplus

Il problema è che SQL*Plus tratta l'intera stringa dopo il & , fino allo spazio bianco o simlar successivo, come nome della variabile di sostituzione. Chiaramente non è quello che vuoi qui.

Fortunatamente ci hanno pensato e puoi indicare la fine del nome della variabile con un . :

FROM &3._TABLE

(Almeno, funziona per le variabili con nome, e sono quasi sicuro che lo farà per quelle posizionali... in caso contrario dovresti definire una nuova variabile impostata su &3 come soluzione alternativa).

Si trova nella la documentazione , ma sbatti le palpebre e ti mancherà:

C'è un effetto correlato che potresti voler tenere a mente per il futuro. Se il carattere successivo alla variabile di sostituzione è un . comunque - tra lo schema e la tabella, o tra la tabella e la colonna, per esempio - allora verrà interpretato come terminatore di sostituzione. Supponi di passare lo schema separatamente come &4 , con valore 'scott'; questo:

FROM &4.&3._TABLE

sembra ragionevole ma verrebbe sostituito come scottdev_TABLE , che non verrà riconosciuto. Quindi in quel caso devi averne uno in più:

FROM &4..&3._TABLE

che verrebbe sostituito con scott.dev_TABLE .