sql >> Database >  >> RDS >> Oracle

Tabelnaam parametreren in sqlplus invoerbestand

Het probleem is dat SQL*Plus de hele string behandelt na de & , tot de volgende spatie of vergelijkbaar, als de naam van de vervangingsvariabele. Dat is duidelijk niet wat je hier wilt.

Gelukkig hebben ze hieraan gedacht, en je kunt het einde van de variabelenaam aangeven met een . :

FROM &3._TABLE

(Dat werkt tenminste voor benoemde variabelen, en ik ben er bijna zeker van dat het ook voor positionele variabelen zal zijn... zo niet, dan zou je een nieuwe variabele moeten definiëren die is ingesteld op &3 als een tijdelijke oplossing).

Het staat in de documentatie , maar knipper en je zult het missen:

Er is een gerelateerd effect dat u misschien in gedachten wilt houden voor de toekomst. Als het volgende teken na de vervangingsvariabele een . hoe dan ook - tussen het schema en de tabel, of bijvoorbeeld tussen de tabel en de kolom - dan wordt dat geïnterpreteerd als de substitutieterminator. Stel dat u het schema afzonderlijk doorgeeft als &4 , met waarde 'scott'; dit:

FROM &4.&3._TABLE

ziet er redelijk uit, maar zou worden vervangen door scottdev_TABLE , die niet zal worden herkend. Dus in dat geval heb je een extra nodig:

FROM &4..&3._TABLE

die zou worden vervangen door scott.dev_TABLE .




  1. Aspecten van strings in .NET

  2. Hoe praat Access met ODBC-gegevensbronnen? Deel 1

  3. Vervangen in querysyntaxis

  4. Controleren of een bepaalde datum tussen een reeks datums past