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

Nối các số trong biểu thức cột ảo ném ORA-12899:giá trị quá lớn cho cột

Con số của bạn không bị hạn chế. Với các số có một chữ số (dương) bạn biết độ dài nối chỉ có thể là ba, nhưng cột ảo phải đủ lớn cho bất kỳ số nào - vì vậy có vẻ như nó cho phép tối đa 40 chữ số cho mô hình định dạng ngầm định (38 chữ số có nghĩa, dấu phân cách thập phân và dấu; @ collspar's lexicalisation ).

Phải nói rằng, việc giới hạn cột số sẽ không được phản ánh trong độ dài cột ảo - làm cho cả hai cột NUMBER(1,0) vẫn để lại đoạn nối yêu cầu 81 ký tự. Lấy chuỗi con của giá trị được tạo cũng sẽ không hoạt động , trong trường hợp này nhận được ORA-12899: value too large for column "TEXT" (actual: 10, maximum: 40) . Cung cấp mô hình định dạng cho mỗi to_char() cuộc gọi, ví dụ:trong tổng số FM999 ), sẽ hoạt động nhưng hạn chế các giá trị ở hai bên của dấu gạch dưới thay vì trực tiếp độ dài tổng thể.

Nếu bạn muốn hạn chế kích thước cột, bạn có thể truyền nó sang cùng một kiểu dữ liệu và kích thước, rõ ràng hơn:

text VARCHAR2(10) generated always as 
    (cast(to_char(id)||'_'||to_char(num) as VARCHAR2(10))) VIRTUAL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Để trích xuất các chuỗi cụ thể từ chuỗi đã cho trong Oracle

  2. Làm thế nào để tách một chuỗi trong PL / SQL?

  3. Tạo trình xử lý ghi nhật ký để kết nối với Oracle?

  4. kết nối bên ngoài bên trái với giá trị null

  5. Oracle nhóm một phần của hàng và nhận hàng với dấu thời gian mới nhất