Oracle
 sql >> Baza danych >  >> RDS >> Oracle

jak sprawdzić poprawność typu danych całkowitych w procedurze oracle

Co dziwne, PL/SQL nie wymusza INTEGER parametry. Spodziewałbym się, że Oracle albo niejawnie przekonwertuje dane, albo wyrzuci błąd, jeśli 5.2 zostało przekazane do INTEGER parametr. Wygląda na to, że musisz dodać własną walidację:

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. Dopasowywanie wartości zduplikowanych kolumn Oracle za pomocą Soundex, Jaro Winkler i Edit Distance (UTL_MATCH)

  2. przekonwertuj bloba na kloba

  3. Wstaw zbiór danych do tabeli Oracle

  4. ORA-01264:Nie można utworzyć nazwy pliku dziennika

  5. brakująca lub nieprawidłowa opcja , przy tworzeniu tabeli ze względu na to, że nie istnieje