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

cách xác thực kiểu dữ liệu số nguyên trong thủ tục oracle

Thật kỳ lạ, PL / SQL không thực thi INTEGER thông số. Tôi hy vọng Oracle sẽ chuyển đổi dữ liệu một cách ngầm định hoặc tạo ra một lỗi nếu 5.2 được chuyển đến một INTEGER tham số. Có vẻ như bạn sẽ cần thêm xác thực của riêng mình:

create or replace procedure test_procedure(a integer) is
begin
    if a is not null and a <> trunc(a) then
        raise_application_error(-20000, 'Parameter must be an integer');
    end if;
end;
/

--Works
begin
    test_procedure(5.0);
end;
/

--Fails with "ORA-20000: Parameter must be an integer".
begin
    test_procedure(5.2);
end;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chuyển đổi dữ liệu hàng đơn thành một cột trong oracle

  2. Oracle tối ưu hóa OR + IN thành OR + EXISTS rất chậm

  3. Làm cách nào để cải thiện hiệu suất truy vấn chèn SQL?

  4. Oracle pivot với truy vấn con

  5. JDBC Metada truy xuất thông tin Ràng buộc