Ketika mencoba untuk mengeksekusi pernyataan penyisipan SQL menggunakan Oracle SQL Developer, saya terus menghasilkan prompt "Masukkan nilai substitusi":
insert into agregadores_agregadores
(
idagregador,
nombre,
url
)
values
(
2,
'Netvibes',
'http://www.netvibes.com/subscribe.php?type=rss\&url='
);
Saya telah mencoba keluar dari karakter khusus dalam kueri menggunakan '\' di atas tetapi saya masih tidak dapat menghindari tanda &, '&', menyebabkan penggantian string.
sql
oracle
escaping
oracle-sqldeveloper
ian_scho
sumber
sumber
Setel karakter definisikan ke sesuatu selain &
sumber
insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL) values (2,'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');
sumber
SELECT 'Free &' || ' Clear' FROM DUAL;
sumber
select 'one'||'&'||'two' from dual
sumber
select 'one&' || 'two' from dual
Jawaban sebenarnya adalah Anda perlu mengatur karakter escape ke '\': SET ESCAPE ON
Masalahnya mungkin terjadi karena pelolosan dinonaktifkan, atau karakter pelolosan disetel ke sesuatu selain '\'. Pernyataan di atas akan mengaktifkan pelolosan dan menyetelnya ke '\'.
Tak satu pun dari jawaban lain yang diposting sebelumnya benar-benar menjawab pertanyaan asli. Mereka semua mengatasi masalah tetapi tidak menyelesaikannya.
sumber
tambahkan ini sebelum permintaan Anda
set define off;
sumber