Podczas testowania PostgreSQL's md5()
function zauważyłem bardzo dziwaczne zachowanie:md5() działa z dosłowne, ale nie z danych kolumn
działa zgodnie z oczekiwaniami
SELECT md5('abc')
--"900150983cd24fb0d6963f7d28e17f72"
ale przy użyciu funkcji md5() w zapytanie:
SELECT request_id, md5(request_id)
FROM Request
ORDER BY request_id
skutkuje tym błędem:
ERROR: function md5(integer) does not exist
LINE 1: SELECT request_id, md5(request_id)
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function md5(integer) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 20
Jak może istnieć funkcja nie, jeśli zadziałała w pierwszym zapytaniu? Co robię źle; jaki jest prawidłowy sposób użycia md5()
w zapytaniu SELECT?
To nie wydaje się dziwne. W pierwszym zapytaniu przekazałeś tekst, podczas gdy w drugim próbujesz przekazać liczby całkowite. – us2012
@ us2012: tak, to różnica. –
Ogólnie nie ma większego sensu przyjmowanie wartości md5 liczby całkowitej, więc byłbym zainteresowany tym, dlaczego próbujesz to zrobić. –