Apakah penyelesaian kepada masalah ruang dalam data jenis CHAR dalam Oracle?

WBOY
Lepaskan: 2024-01-15 18:21:16
ke hadapan
943 orang telah melayarinya

Apakah penyelesaian kepada masalah ruang dalam data jenis CHAR dalam Oracle?

Adakah terdapat cara untuk mengalih keluar null dalam data jenis CHAR dalam Oracle

Anda boleh menggunakan skrip untuk menukar semua medan jenis CHAR kepada jenis VARCHAR2 dan memotong ruang dalam rentetan, seperti berikut:

isytiharkan

mulakan

untuk c in (pilih *

daripada pengguna_tab_columns t1

di mana t1.DATA_TYPE = 'CHAR'

) gelung

laksanakan segera 'ubah jadual' ||. c.nama_jadual ||

jalankan 'kemas kini ' ||. c.nama_jadual ||

laksanakan 'kemas kini ' ||. c.table_name ||. c.column_name ||

laksanakan segera 'ubah jadual ' ||. nama_jadual || ' ubah suai ' ||. c.column_name ||

laksanakan 'kemas kini ' ||. c.nama_jadual ||. ' set ' ||

laksanakan segera 'ubah jadual' ||. c.nama_jadual ||. c.nama_jadual ||

gelung hujung;

akhir;

Cara mengalih keluar aksara seperti ruang dalam struktur jadual pangkalan data Oracle

1 Mula-mula keluarkan ruang sebelum perbandingan (contohnya, keluarkan semua ruang dalam nama):

Kemas kini set nama_jadual xm=replace(xm, ' ') ;

Jika anda ingin mencari rekod yang mengandungi ' ', anda boleh menggunakan pernyataan berkaitan untuk mencari.

Lepas tu boleh bandingkan.

2 Walau bagaimanapun, kami mungkin mendapati bahawa terdapat aksara yang serupa dengan ruang di tengah atau di hujung beberapa nama yang belum dialih keluar, tetapi mereka jelas bukan ruang biasa, jadi kami mengesyaki Tab Jian yang bersalah. Jadi saya mengikuti kaedah mengalih keluar kunci TAB yang disebut di Internet dan menggunakan chr(9) untuk menggantikan bar ruang (nilai ASCII bagi kunci TAB ialah 9). Mula-mula ambil rekod dengan aksara seperti ruang untuk percubaan:

PILIH ganti(xm, chr(9) ) daripada table_name di mana;

Menggunakan kaedah ini akan mengalih keluar beberapa ruang kekunci tab sebenar, dan kemudian menggunakan kaedah kemas kini kelompok.

3 Tetapi situasi yang saya hadapi tidak begitu bernasib baik dan saya gagal mengeluarkan kunci seperti ruang. Apa yang perlu dilakukan? Saya memutuskan untuk cuba mendapatkan nilai kod ASCII bagi kunci ruang ini dahulu, dan kemudian gunakan kaedah chr (nilai kod ASCII) untuk memprosesnya.

① Dapatkan panjang () keseluruhan rentetan yang mengandungi kekunci seperti ruang, dengan itu menentukan kedudukan permulaan kekunci seperti ruang dalam rentetan dan panjang kekunci seperti ruang.

② Nilai kod ASCII bagi kekunci seperti ruang: ascii(substr(xm,n,m));

③.PILIH ganti(xm, chr (nilai kod ASCII diperolehi dalam langkah ②)) daripada nama_jadual di mana;

Selesai masalah. Tetapi saya mendapati bahawa nilai kod ASCII yang diperoleh dalam langkah 2 di atas ialah 41377. Ini sepatutnya nilai kod ASCII bagi aksara Cina, dan ia kelihatan seperti ruang Jadi saya tertanya-tanya, bolehkah ia menjadi kunci ruang dan kunci TAB dalam bahasa Cina mod? Selepas mencuba saya mendapati ia tidak. Saya juga tertanya-tanya, adakah ia perbezaan antara lebar penuh dan separuh lebar? Kerana kami biasanya memasukkan aksara pada separuh lebar. Saya mengikuti langkah pertama "1. Mula-mula keluarkan ruang sebelum membandingkan ..." dan cuba memasukkan ruang dalam keadaan lebar penuh dan carian hasilnya adalah mengejutkan adalah ruang yang dimasukkan dalam keadaan lebar penuh Sambungan selari mengesahkan bahawa nilai kod ASCII ruang yang dimasukkan dalam mod lebar penuh ialah 41377.

Atas ialah kandungan terperinci Apakah penyelesaian kepada masalah ruang dalam data jenis CHAR dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:docexcel.net
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