Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara menyisipkan string yang berisi &

Saya terus melupakan ini dan kembali lagi! Saya pikir jawaban terbaik adalah kombinasi dari tanggapan yang diberikan sejauh ini.

Pertama, &adalah awalan variabel di sqlplus/sqldeveloper, maka masalahnya - ketika muncul, itu diharapkan menjadi bagian dari nama variabel.

SET DEFINE OFF akan menghentikan interpretasi sqlplus &dengan cara ini.

Tetapi bagaimana jika Anda perlu menggunakan variabel sqlplus dan literal &karakter?

  • Anda perlu SET DEFINE ON agar variabel berfungsi
  • Dan SET ESCAPE ON untuk menghindari penggunaan &.

misalnya

set define on
set escape on

define myvar=/forth

select 'back\\ \& &myvar' as swing from dual;

Menghasilkan:

old   1: select 'back\\ \& &myvar' from dual
new   1: select 'back\ & /forth' from dual

SWING
--------------
back\ & /forth

Jika Anda ingin menggunakan karakter pelarian yang berbeda:

set define on
set escape '#'

define myvar=/forth

select 'back\ #& &myvar' as swing from dual;

Saat Anda menyetel karakter escape tertentu, Anda mungkin melihat 'SP2-0272:karakter escape tidak boleh berupa alfanumerik atau spasi'. Ini mungkin berarti Anda sudah memiliki karakter pelarian yang ditentukan, dan hal-hal menjadi referensi diri yang mengerikan. Cara bersih untuk menghindari masalah ini adalah dengan melarikan diri terlebih dahulu:

set escape off
set escape '#'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perjalanan Melalui GIMR

  2. Kueri berguna AWR teratas untuk Peningkatan R12.2/R12.1

  3. Apakah inner join sama dengan equi-join?

  4. Bagaimana saya bisa memasukkan ke dalam kolom BLOB dari pernyataan insert di sqldeveloper?

  5. Oracle:Mengonversi Jumlah Mata Uang dalam Kata Menggunakan PL/SQL