Oracle ialah salah satu sistem pangkalan data yang terkenal di dunia dengan pelbagai aplikasi, terutamanya dalam aplikasi peringkat perusahaan. Dalam Oracle, terdapat banyak jenis data, seperti rentetan, tarikh, nombor, dll. Walau bagaimanapun, kadangkala kami perlu menukar jenis data tertentu dalam Oracle kepada jenis angka untuk memudahkan pengiraan, perbandingan dan operasi lain kami. Artikel ini akan memperkenalkan cara menukar jenis data yang berbeza kepada jenis angka dalam Oracle.
Dalam Oracle, cara paling mudah untuk menukar rentetan kepada nombor ialah menggunakan fungsi TO_NUMBER(). Sintaks fungsi ini ialah TO_NUMBER(rentetan, format), dengan rentetan ialah rentetan yang perlu ditukar dan format adalah pilihan dan digunakan untuk menentukan format output. Jika format tidak ditentukan, Oracle akan secara automatik mengecam nombor dalam rentetan dan menukarnya kepada nombor. Berikut ialah contoh:
PILIH KE_NOMBOR('123') DARI DUAL;
Hasil yang dikembalikan oleh pertanyaan ini ialah nombor 123.
Selain itu, jika rentetan mengandungi aksara bukan angka, fungsi TO_NUMBER() akan mengembalikan ralat. Oleh itu, apabila menggunakan fungsi TO_NUMBER(), pastikan bahawa rentetan mengandungi aksara angka sahaja.
Jika anda perlu mengalih keluar aksara bukan angka daripada rentetan, anda boleh menggunakan fungsi REGEXP_REPLACE(). Berikut ialah contoh:
PILIH KE_NOMBOR(REGEXP_REPLACE('1,234.56', '1.]', '')) DARI DUAL;
Pertanyaan ini akan mengalih keluar koma dan noktah daripada rentetan dan menukar hasilnya kepada nombor. Perlu diingatkan bahawa fungsi ini hanya akan mengalih keluar aksara bukan angka daripada rentetan dan tidak akan melakukan pembundaran atau pemprosesan lain.
Dalam Oracle, jenis tarikh ialah jenis yang sangat biasa. Kadangkala kita perlu menukar tarikh kepada jenis angka untuk memudahkan pengiraan. Oracle menyediakan dua kaedah untuk menukar tarikh kepada nombor, menggunakan fungsi TO_NUMBER() dan menggunakan fungsi DATE_TO_JULIAN().
Menggunakan fungsi TO_NUMBER() untuk menukar tarikh kepada nombor adalah serupa dengan menukar rentetan kepada nombor. Berikut ialah contoh:
PILIH KE_NOMBOR(KE_CHAR(SYSDATE, 'yyyy')) DARI DUAL;
Pertanyaan ini mengembalikan nombor tahun semasa. Perlu diingatkan bahawa apabila menukar tarikh kepada rentetan, anda perlu menentukan format output.
Kaedah menggunakan fungsi DATE_TO_JULIAN() untuk menukar tarikh kepada nombor adalah untuk menukar tarikh kepada hari Julian, dan kemudian menukar hari Julian kepada nombor. Berikut ialah contoh:
PILIH TARIKH_TO_JULIAN(SYSDATE) DARIPADA DUAL;
Pertanyaan ini mengembalikan hari Julian tarikh semasa, yang merupakan jenis angka.
Dalam Oracle, terdapat beberapa jenis lain, seperti jenis BOOLEAN, jenis BINARY_INTEGER, dsb. Walaupun jenis ini bukan jenis angka, kadangkala kita perlu menukarnya kepada jenis angka. Pada masa ini, anda boleh menggunakan fungsi CAST() atau fungsi TO_NUMBER() untuk penukaran.
Sintaks untuk menggunakan fungsi CAST() untuk menukar jenis lain kepada nombor ialah CAST(nilai SEBAGAI NOMBOR), dengan nilai ialah nilai yang perlu ditukar. Berikut ialah contoh:
PILIH CAST(BENAR SEBAGAI NOMBOR) DARI DUAL;
Pertanyaan ini mengembalikan nombor 1, yang bermaksud benar.
Kaedah menggunakan fungsi TO_NUMBER() untuk menukar jenis lain kepada nombor juga digunakan untuk jenis BOOLEAN dan jenis BINARY_INTEGER. Berikut ialah contoh:
PILIH KE_NOMBOR(BENAR) DARI DUAL;
Pertanyaan ini juga mengembalikan nombor 1.
Perlu diambil perhatian bahawa jika jenis bukan angka ditukar kepada jenis angka, ralat akan berlaku. Oleh itu, apabila menggunakan fungsi ini, pastikan nilai yang hendak ditukar adalah sah. Pada masa yang sama, anda juga perlu memberi perhatian kepada julat jenis berangka output untuk mengelakkan limpahan dan masalah lain.
Atas ialah kandungan terperinci Bagaimana untuk menukar oracle kepada nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!