sql >> Base de Datos >  >> RDS >> Oracle

Parametrización del nombre de la tabla en el archivo de entrada sqlplus

El problema es que SQL*Plus trata la cadena completa después de & , hasta el siguiente espacio en blanco o similar, como el nombre de la variable de sustitución. Claramente eso no es lo que quieres aquí.

Afortunadamente, han pensado en esto y puede indicar el final del nombre de la variable con un . :

FROM &3._TABLE

(Al menos, eso funciona para las variables con nombre, y estoy casi seguro de que lo hará para las posicionales... si no, entonces deberá definir una nueva variable establecida en &3 como solución alternativa).

Está en la documentación , pero parpadea y te lo perderás:

Hay un efecto relacionado que quizás desee tener en cuenta para el futuro. Si el siguiente carácter después de la variable de sustitución es un . de todos modos, entre el esquema y la tabla, o entre la tabla y la columna, por ejemplo, eso se interpretará como el terminador de sustitución. Digamos que estaba pasando el esquema por separado como &4 , con valor 'scott'; esto:

FROM &4.&3._TABLE

parece razonable pero se sustituiría por scottdev_TABLE , que no será reconocido. Entonces, en ese caso, necesita tener uno adicional:

FROM &4..&3._TABLE

que se sustituiría por scott.dev_TABLE .