Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Parametryzacja nazwy tabeli w pliku wejściowym sqlplus

Problem polega na tym, że SQL*Plus traktuje cały ciąg znaków po & , aż do następnej spacji lub znaku podobnego, jako nazwy zmiennej podstawienia. Oczywiście nie tego chcesz tutaj.

Na szczęście pomyśleli o tym i możesz oznaczyć koniec nazwy zmiennej za pomocą . :

FROM &3._TABLE

(Przynajmniej to działa w przypadku zmiennych nazwanych i jestem prawie pewien, że zadziała w przypadku zmiennych pozycyjnych... jeśli nie, musisz zdefiniować nową zmienną ustawioną na &3 jako obejście).

Znajduje się w dokumentacji , ale mrugnij, a przegapisz:

Istnieje powiązany efekt, o którym warto pamiętać na przyszłość. Jeśli następnym znakiem po zmiennej podstawienia jest . tak czy inaczej - między schematem a tabelą lub na przykład między tabelą a kolumną - zostanie to zinterpretowane jako terminator podstawienia. Załóżmy, że przekazujesz schemat osobno jako &4 , z wartością 'scott'; to:

FROM &4.&3._TABLE

wygląda rozsądnie, ale zostanie zastąpiony jako scottdev_TABLE , który nie zostanie rozpoznany. Więc w takim przypadku musisz mieć dodatkowy:

FROM &4..&3._TABLE

który zostałby zastąpiony jako 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. Jak sprawdzić format daty RRRR-MM-dd GG-MM-ss?

  2. Błędy podczas instalacji jdk 1.7 w linuksie

  3. JdbcTemplate — wstaw lub zaktualizuj Oracle BLOB za pomocą SQL MERGE

  4. jak pobierać, usuwać, zatwierdzać z kursora

  5. błąd prawego nawiasu ORA-00907 w Oracle