Loại dữ liệu FLOAT trong Oracle 10g là gì và nó có liên quan như thế nào với NUMBER?FLOAT map/liên quan đến NUMBER trong Oracle 10g như thế nào?
Tham chiếu duy nhất tôi có thể tìm thấy FLOAT trong tài liệu Oracle nằm trong phần BINARY_DOUBLE của trang này: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i140621 Dường như chỉ ra rằng nó lưu trữ số dấu phẩy động và cho phép bạn chỉ định bit chính xác, nhưng không t tham chiếu loại NUMBER. Các tài liệu 11g không đề cập đến FLOAT cả.
Cuốn sách "Expert Oracle Kiến trúc Cơ sở dữ liệu: Oracle Database 9i, 10g và 11g Lập trình kỹ thuật và giải pháp, Second Edition" nói:
Ngoài SỐ, BINARY_FLOAT, và các loại BINARY_DOUBLE, Oracle cú pháp hỗ trợ các kiểu dữ liệu số sau đây:
Khi tôi nói "hỗ trợ cú pháp", tôi có nghĩa là câu lệnh CREATE có thể sử dụng các kiểu dữ liệu này, nhưng dưới bìa chúng thực sự là loại NUMBER. ...
- FLOAT (p): Bản đồ cho loại NUMBER.
Những gì tôi không hiểu là như thế nào nó ánh xạ tối đa NUMBER.
NUMBER(p)
cho phép tôi chỉ định độ chính xác nhưng tỷ lệ mặc định là 0. Có vẻ như FLOAT(p)
được ánh xạ tới NUMBER(decimal p, *)
, nghĩa là độ chính xác cố định nhưng quy mô thay đổi không phải là loại NUMBER cho phép.
Vì vậy, FLOAT không chỉ là bí danh mà còn cung cấp hành vi mà NUMBER chính nó không cung cấp?
Tôi không có một thể hiện của Oracle tiện dụng để kiểm tra, nhưng nếu tôi nhớ chính xác float được định nghĩa trong SYS.STANDARD gói như một loại phụ NUMBER.(Trong Oracle ** nhất ** kiểu số là các kiểu con của NUMBER. Tôi tin rằng BINARY_FLOAT và BINARY_DOUBLE là một trong số ít ngoại lệ cho điều này. PLS_INTEGER có thể là một kiểu khác nhưng tôi không chắc chắn - hãy kiểm tra SYS.STANDARD). –
@BobJarvis có, nó nói 'sublope FLOAT là NUMBER; - NUMBER (126) ', nhưng sau đó một lần nữa nó cũng nói' subtype BINARY_FLOAT là NUMBER; '... –