Rumah > Artikel > pangkalan data > Bagaimana untuk menukar data aksara kepada data berangka dalam oracle
Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan yang sangat popular dengan jenis data yang kaya, termasuk jenis angka, jenis aksara, jenis tarikh, jenis Blob, dsb. Dalam aplikasi praktikal, kita sering menghadapi keperluan untuk menukar data jenis aksara kepada jenis angka. Artikel ini akan memperkenalkan cara menukar data aksara kepada data berangka dalam pangkalan data Oracle.
Pangkalan data Oracle menyokong beberapa jenis nombor, termasuk integer (INT), titik terapung (FLOAT), ketepatan berganda (DOUBLE), dll. Apabila kita perlu menukar data aksara kepada data berangka, kita boleh menggunakan fungsi terbina dalam TO_NUMBER() pangkalan data Oracle untuk mencapai ini.
Sintaks fungsi TO_NUMBER() adalah seperti berikut:
TO_NUMBER(rentetan, [format], [nls_language])
Antaranya, rentetan mewakili data aksara yang perlu ditukar; format Mewakili format nombor, yang merupakan pilihan;
Jika parameter format tidak ditentukan, pangkalan data Oracle akan melakukan penukaran mengikut format berangka sesi semasa secara lalai. Jika rentetan mengandungi aksara khas, seperti $,,, dsb., maka anda perlu menggunakan parameter format untuk menentukan peraturan penukaran.
Contoh 1:
Kami mula-mula membuat jadual untuk menyimpan data aksara:
BUAT JADUAL test_number (
id NOMBOR(10),
data VARCHAR2( 50)
);
Kemudian masukkan beberapa data ke dalam jadual:
MASUKKAN KE DALAM ujian_nombor (id, data) NILAI (1, '123');
MASUKKAN KE DALAM ujian_nombor (id, data) NILAI (2, '45.67');
MASUKKAN KE DALAM nombor_ujian (id, data) NILAI (3, '-8.9');
MASUKKAN KE DALAM nombor_ujian (id, data) NILAI (4, '$123.456');
Seterusnya, kami menggunakan fungsi TO_NUMBER() untuk menukar data aksara kepada data angka:
PILIH id, TO_NUMBER(data) SEBAGAI nombor DARI test_number;
Hasil pelaksanaan adalah seperti berikut:
ID NUM
1 123
2 45.67
3 -8.9
4 123.456
Contoh 2:
Contoh 2:Dalam aplikasi sebenar, kami mungkin menghadapi keperluan untuk menukar data aksara kepada data integer. Dalam kes ini, anda perlu menggunakan parameter format untuk menentukan peraturan penukaran.
Sebagai contoh, kami mempunyai jadual untuk menyimpan data prestasi pelajar:
BUAT JADUAL ujian_skor (
NOMBOR id(10),
nama VARCHAR2(50),
skor VARCHAR2(50)
);
Masukkan beberapa data ke dalam jadual:
MASUKKAN KE DALAM ujian_skor (id, nama, markah) NILAI (1, 'Zhang San', '90 ' );
MASUKKAN KE DALAM ujian_skor (id, nama, skor) NILAI (2, '李思', '85.5');
MASUKKAN KE DALAM ujian_skor (id, nama, skor) NILAI (3, '王五' , '78');
MASUKKAN KE DALAM test_score (id, nama, skor) NILAI (4, 'Zhao Liu', '60+');
Kita boleh menggunakan pernyataan SQL berikut untuk menukar medan skor Data integer:
PILIH id, nama, TO_NUMBER(skor, '999') AS score_int FROM test_score;
Dalam pernyataan SQL di atas, '999' mewakili rentetan format, di mana Setiap 9 mewakili digit, dan jika terdapat digit yang tidak mencukupi, 0 pendahuluan ditambah. Oleh itu, pernyataan ini menukar data aksara kepada data integer.
Keputusan pelaksanaan adalah seperti berikut:
NAMA ID SCORE_INT
1 Zhang San 90
2 Li Si 85
3 Wang Wu 78
4 Zhao Liu 60
Perlu diambil perhatian bahawa jika rentetan mengandungi aksara bukan angka, fungsi TO_NUMBER() akan mengembalikan ralat. Oleh itu, apabila menggunakan fungsi ini, anda perlu memastikan bahawa rentetan yang hendak ditukar memenuhi keperluan format nombor, jika tidak, anda perlu menggunakan fungsi lain untuk pembersihan data.
Ringkasan:
Pangkalan data Oracle menyediakan fungsi TO_NUMBER(), yang boleh menukar data aksara kepada data angka. Apabila menggunakan fungsi ini, anda perlu memberi perhatian kepada spesifikasi peraturan penukaran dan memastikan rentetan yang hendak ditukar memenuhi keperluan format nombor. Artikel ini memperkenalkan dua contoh dan berharap dapat membantu pembaca.
Atas ialah kandungan terperinci Bagaimana untuk menukar data aksara kepada data berangka dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!