Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Panjang dinamis pada format angka di to_number Oracle SQL

Satu-satunya cara, adalah dengan menetapkan nilai yang sesuai untuk nls_numeric_characters lebar sesi parameter dan gunakan to_number() fungsi tanpa menentukan format mask.

Berikut adalah contoh sederhana. Karakter pemisah desimal adalah koma "," dan literal numerik mengandung titik "." sebagai karakter pemisah desimal:

SQL> show parameter nls_numeric_characters;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
nls_numeric_characters               string      ,.

SQL> with t1(col) as(
  2    select '12345.567'  from dual union all
  3    select '12.45'      from dual
  4  )
  5  select to_number(col) as res
  6    from t1;
select to_number(col)
       *
ERROR at line 5:
ORA-01722: invalid number 

SQL> alter session set nls_numeric_characters='.,';

Session altered.

SQL> with t1(col) as(
  2    select '12345.567'  from dual union all
  3    select '12.45'      from dual
  4  )
  5  select to_number(col) as res
  6    from t1;

res                                                                 
--------------    
     12345.567       
         12.45    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan oracle.jdbc.driver.LogicalConnection, perlu oracle.jdbc.OracleConnection

  2. Mengapa saya tidak bisa memasukkan tanggal ini ke dalam tabel menggunakan sql?

  3. ORA-24247:akses jaringan ditolak oleh daftar kontrol akses (ACL)

  4. Alat pengembang untuk mengakses database secara langsung

  5. php oci_bind_by_name mengapung ke numerik