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.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.
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, lady1Keputusan yang betul hendaklah: lady_test, lady_testtidak termasuk lady1select * from ng_values where name like 'lady_%'
Sila berikan kaedah melarikan diri, 3ks
jawapan:
3.(Kaedah 1)
select ... from ... where ... like '/_%' escape '/';
insert into t(col) values(chr(ascii('&'))) ;
SQL> SHOW DEFINE define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’ SQL> SET DEFINE OFF SQL> SHOW DEFINE define OFF SQL> INSERT INTO <table_name> VALUES ('AT&T');
SQL> SHOW ESCAPE escape OFF <--- ESCAPE的default值是 OFF SQL> SET ESCAPE ON SQL> SHOW ESCAPE escape "\" (hex 5c) SQL> INSERT INTO temp_table VALUES ('select * from emp where ename =\&1');
Mulakan watak melarikan diri dahulu
SELECT 'myjsp?page=1&pagesize=10' FROM dual; SELECT 'myjsp?page=1&pagesize=10' FROM dual; SQL> create table a (b varchar2(10)); Table created SQL> insert into a values('_a');
SQL> select B from A where instr(b,'_a')>0; B ---------- _a select B from A where b like '%\_a%' escape '\'
select B from A where b like '%\_a%' escape '\'; select B from A where b like '%\_a%' escape '\';
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 'abc' a,'' b, '''' c, ' '' ' d From Dual;
Selepas mengalih keluar petikan berganda, bakinya ialah 'hh24miss' ialah rentetan format yang sah.
Select 'name' || '''''' a, 'name''''' b From Dual; Output:name'' name''
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 'hh24"小时""mi""分"""ss"秒"' Results From Dual; Output:hh24"小时""mi""分"""ss"秒"
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!