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

Apakah watak melarikan diri dalam oracle

WBOY
WBOYasal
2022-01-25 14:12:487660semak imbas

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'

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_%'

Sila berikan kaedah melarikan diri, 3ks

jawapan:

3.

(Kaedah 1)

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

insert into t(col) values(chr(ascii('&'))) ;
/

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;);

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;);

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;);
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;
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;;

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;

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;
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"秒"

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!

Kenyataan:
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