Rumah > pangkalan data > Oracle > Apakah watak melarikan diri dalam oracle

Apakah watak melarikan diri dalam oracle

WBOY
Lepaskan: 2022-01-25 14:12:48
asal
7673 orang telah melayarinya

Escape aksara dalam Oracle: 1. Petikan tunggal, digunakan untuk memetik rentetan atau melarikan diri sendiri 2. Petikan berganda, digunakan untuk membungkus aksara format yang tidak sah 3. "&" Iaitu, simbol dan digunakan untuk menyambung dua escape sendiri; 4. Escape digunakan untuk menentukan simbol bukan khas sebagai watak melarikan diri.

Apakah watak melarikan diri dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Apakah aksara pelarian Oracle plsql

Dilaksanakan dalam plsql:

Pernyataan sql ini meletakkan alamat url ke dalam medan pageurl pangkalan data, tetapi perlaksanaan tidak begitu ideal kerana terdapat oracle di dalamnya. Watak istimewa perlu dilepaskan, iaitu watak '&'.

Bagaimana untuk menangani watak istimewa dalam contoh di atas?

Dua kaedah:
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
Salin selepas log masuk

1) kemas kini info pengguna setpageurl='myjsp?page=1'||'&'||'pagesize=10' di mana id='test'

2) kemas kini userinfo setpageurl='myjsp?page=1'||chr(38)||'pagesize=10' dengan id='test'

di mana || ialah tanda sempang, chr( 38 ) Ia selaras dengan transkod aksara ASCII.

Dalam plsql, anda juga boleh menetapkan define untuk mematikan aksara khas, dan anda juga boleh menggunakan show define untuk melihat beberapa aksara yang ditakrifkan khas.

2. Bagaimana untuk melarikan watak istimewa dalam oracle

Soalan: Bagaimana untuk melarikan diri garis bawah_

jieguo Keputusan menunjukkan lady_test, lady_test, lady1

Keputusan yang betul hendaklah: lady_test, lady_test

tidak termasuk lady1
select * from ng_values where name like 'lady_%'
Salin selepas log masuk

Sila berikan kaedah melarikan diri, 3ks

jawapan:

3.

(Kaedah 1)

select ... from ... where ... like '/_%' escape '/';
Salin selepas log masuk
Contoh: masukkan aksara khas '&'

insert into t(col) values(chr(ascii('&'))) ;
Salin selepas log masuk
/

1 baris dibuat

(Kaedah 2)
SQL> SHOW DEFINE
define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’
SQL> SET DEFINE OFF
SQL> SHOW DEFINE
define OFF
SQL> INSERT INTO <table_name> VALUES (&#39;AT&T&#39;);
Salin selepas log masuk

1 baris dibuat.

;

Beberapa kaedah ujian:
SQL> SHOW ESCAPE
escape OFF <--- ESCAPE的default值是 OFF
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
escape "\" (hex 5c)
SQL> INSERT INTO temp_table VALUES (&#39;select * from emp where ename =\&1&#39;);
Salin selepas log masuk

1 baris dimasukkan

Mulakan watak melarikan diri dahulu

SELECT &#39;myjsp?page=1&pagesize=10&#39; FROM dual;
SELECT &#39;myjsp?page=1&pagesize=10&#39; FROM dual;
SQL>   create   table   a  (b   varchar2(10));  
Table   created  
SQL>   insert   into   a  values(&#39;_a&#39;);
Salin selepas log masuk
tetapkan melarikan diri pada

SQL>   select   B   from  A   where   instr(b,&#39;_a&#39;)>0;  
B  
----------  
_a  
select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;
Salin selepas log masuk
Perhatikan bahawa

petikan berganda" tidak terlepas dalam Aksara Oracle, jadi ia boleh disimpan secara langsung tanpa melarikan diri dua fungsi dalam ORACLE: 1) memetik rentetan; 2) melarikan diri sendiri

Apabila memetik rentetan, petikan tunggal muncul secara berpasangan; petikan mestilah berpasangan. adalah sebahagian daripada rentetan (yang sangat biasa dalam SQL dinamik 2. Tanda petikan berganda
select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;;
select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;;
Salin selepas log masuk

1) Secara umumnya, tanda petikan berganda dalam rentetan hanya dianggap sebagai aksara biasa

Pada masa ini, tanda petikan berganda tidak perlu digandingkan:

2) Apabila muncul dalam rentetan format to_char, petikan berganda mempunyai fungsi khas. adalah untuk membungkus aksara format yang tidak sah untuk mengelakkan ORA-01821: format tarikh tidak dikenali Ralat

Dalam erti kata lain, selepas mengalih keluar petikan berganda dan aksara yang terkandung di dalamnya, apa yang tinggal harus menjadi rentetan format yang sah >to_char akan mengabaikan gandaan apabila memproses rentetan format:

Pilih To_Char(Sysdate, 'hh24"hour"mi"minit"ss"second"') Sebagai "Masa/Jam Semasa. Minute Second" From Dual;

Output:09 jam 05 Minit 08 saat - aplikasi ini juga tersedia dalam alias

Rentetan format ialah 'hh24"hour"mi"minit"ss" second"';
Select &#39;abc&#39; a,&#39;&#39; b, &#39;&#39;&#39;&#39; c, &#39; &#39;&#39; &#39; d From Dual;
Salin selepas log masuk

Selepas mengalih keluar petikan berganda, bakinya ialah 'hh24miss' ialah rentetan format yang sah.

Select &#39;name&#39; || &#39;&#39;&#39;&#39;&#39;&#39; a, &#39;name&#39;&#39;&#39;&#39;&#39; b From Dual;
Output:name&#39;&#39;  name&#39;&#39;
Salin selepas log masuk
Tetapi walaupun anda benar-benar tidak mengetahui penggunaan petikan berganda, anda masih boleh mengendalikannya seperti ini, walaupun ia sedikit lebih menyusahkan:

Pilih To_Char(Sysdate, 'hh24 ') ||. 'Jam' ||. To_Char (Sysdate, 'mi') ||. To_Char(Sysdate, 'ss') ||. 09 jam, 05 minit dan 8 saat

3,& (dan simbol)

digunakan untuk mengenal pasti/menetapkan pembolehubah tersuai, diikuti dengan nama pembolehubah; perlu digunakan sebagai aksara, anda perlu menggunakan Chr(38), atau Sambung dua && (escape sendiri)
Select &#39;hh24"小时""mi""分"""ss"秒"&#39; Results From Dual;
Output:hh24"小时""mi""分"""ss"秒"
Salin selepas log masuk

4, Escape (nyatakan watak melarikan diri)

nyatakan a simbol bukan khas sebagai watak melarikan diri, kebanyakannya digunakan dalam melarikan diri kad bebas

Tutorial yang disyorkan: "

Tutorial Video Oracle

"

Atas ialah kandungan terperinci Apakah watak melarikan diri dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan