Pomóż mi proszę, dlaczego funkcja błędu nie istnieje?
[2018-10-31 12:31:05] [42883] BŁĄD: funkcja tester firmy(duży, nieznany, nieznany, nieznany, nieznany) nie istnieje
Wskazówka: żadna funkcja nie pasuje do podanej nazwy i typów argumentów. Może być konieczne dodanie wyraźnych rzutów typu.
CREATE OR REPLACE FUNCTION companyTester(founder Founder) RETURNS BOOLEAN AS $$
BEGIN
RAISE NOTICE 'Founder id: %',founder.founder_id;
RAISE NOTICE 'Founder FirstName: %',founder.firstname;
RAISE NOTICE 'Founder LastName: %',founder.lastname;
RAISE NOTICE 'Founder email: %',founder.email;
RAISE NOTICE 'Founder password %',founder.f_password;
END;
$$ LANGUAGE plpgsql;
SELECT companyTester(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88;
CREATE TYPE Founder AS (
founder_id BIGINT,
firstname VARCHAR(150),
lastname VARCHAR(150),
email VARCHAR(50),
f_password VARCHAR(50)
);
1 odpowiedź
Przekazujesz do funkcji 5 parametrów, ale zadeklarowano, że akceptuje tylko jeden parametr (typu founder
)
Potrzebujesz konstruktora wierszy aby utworzyć właściwą instancję founder
i tym samym przekazać tylko jeden argument:
SELECT companyTester(
(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88')::founder
);
Wyrażenie (76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88')::founder
to pojedyncza wartość
Alternatywnie możesz użyć:
SELECT companyTester(row(76565445354,'Maks','Burkov','Maks.Burkov88@gmail.com','+_@Maks88'));
Podobne pytania
Nowe pytania
sql
Structured Query Language (SQL) to język służący do wykonywania zapytań w bazach danych. Pytania powinny zawierać przykłady kodu, strukturę tabeli, przykładowe dane i znacznik używanej implementacji DBMS (np. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 itp.). Jeśli Twoje pytanie dotyczy wyłącznie konkretnego DBMS (używa określonych rozszerzeń / funkcji), użyj zamiast tego tagu tego DBMS. Odpowiedzi na pytania oznaczone tagiem SQL powinny używać standardu SQL ISO / IEC.