Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Độ dài động trên định dạng số trong to_number Oracle SQL

Cách duy nhất là đặt giá trị thích hợp cho nls_numeric_characters rộng phiên tham số và sử dụng to_number() chức năng mà không chỉ định mặt nạ định dạng.

Đây là một ví dụ đơn giản, ký tự phân tách thập phân là dấu phẩy "," và các ký tự số chứa dấu chấm "." dưới dạng ký tự phân tách thập phân:

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. Điều chỉnh hiệu suất SQL cho Oracle Many OR vs IN ()

  2. Làm cách nào để kiểm tra xem con trỏ có trả về bất kỳ bản ghi nào trong oracle hay không?

  3. Oracle SQL:Chọn một hàng có ngày mới nhất giữa nhiều cột

  4. hibernate.jpa.criteria.BasicPathUsageException:Không thể tham gia vào thuộc tính của loại cơ bản

  5. Làm cách nào để trích xuất tệp từ trường Oracle BLOB?