Masalahnya adalah SQL*Plus memperlakukan seluruh string setelah &
, hingga spasi putih atau simlar berikutnya, sebagai nama variabel substitusi. Jelas bukan itu yang Anda inginkan di sini.
Untungnya mereka telah memikirkan hal ini, dan Anda dapat menandai akhir nama variabel dengan .
:
FROM &3._TABLE
(Setidaknya, itu berfungsi untuk variabel bernama, dan saya hampir yakin itu akan berfungsi untuk variabel posisi... jika tidak maka Anda perlu mendefinisikan variabel baru yang disetel ke &3
sebagai solusi).
Ada di dokumentasi , tapi berkedip dan Anda akan melewatkannya:
Ada efek terkait yang mungkin ingin Anda ingat untuk masa depan. Jika karakter berikutnya setelah variabel substitusi adalah .
anyway - antara skema dan tabel, atau antara tabel dan kolom, misalnya - maka itu akan ditafsirkan sebagai terminator substitusi. Katakanlah Anda melewati skema secara terpisah sebagai &4
, dengan nilai 'scott'
; ini:
FROM &4.&3._TABLE
terlihat masuk akal tetapi akan diganti sebagai scottdev_TABLE
, yang tidak akan dikenali. Jadi dalam hal ini Anda perlu memiliki satu tambahan:
FROM &4..&3._TABLE
yang akan diganti sebagai scott.dev_TABLE
.