Oracle
 sql >> база данни >  >> RDS >> Oracle

Параметризиране на името на таблицата във входния файл на sqlplus

Проблемът е, че SQL*Plus третира целия низ след & , до следващото празно пространство или подобно, като име на променлива за заместване. Очевидно не това е, което искате тук.

За щастие те са се сетили за това и можете да обозначите края на името на променливата с . :

FROM &3._TABLE

(Поне това работи за именувани променливи и съм почти сигурен, че ще работи за позиционни... ако не, тогава ще трябва да дефинирате нова променлива, зададена на &3 като заобиколно решение).

Той е в документацията , но мигнете и ще го пропуснете:

Има свързан ефект, който може да искате да имате предвид за в бъдеще. Ако следващият знак след променливата за заместване е . така или иначе - между схемата и таблицата, или между таблицата и колоната, например - тогава това ще се интерпретира като терминатор на заместване. Да кажем, че подавате схемата отделно като &4 , със стойност 'scott'; това:

FROM &4.&3._TABLE

изглежда разумно, но ще бъде заменено с scottdev_TABLE , което няма да бъде разпознато. Така че в този случай трябва да имате допълнителен:

FROM &4..&3._TABLE

което ще бъде заменено като scott.dev_TABLE .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо статичният ddl не е разрешен в PL/SQL?

  2. Изпълнение на Total от Group SQL (Oracle)

  3. Какво е еквивалентът на SQL Server APPLY в Oracle?

  4. ORA-01401:вмъкната стойност е твърде голяма за колона CHAR

  5. Как да получите най-близките дати в Oracle sql