该功能似乎单独有效。 pgAdmin 对它以及桌子都竖起了大拇指。我尝试了许多不同的方法来键入函数和 INSERT INTO 部分。我已经为此工作了一个多小时,但似乎陷入困境。直到这部分我都做得还不错。有什么想法吗?
CREATE FUNCTION rental_string (title VARCHAR(250), rating VARCHAR(250))
RETURNS VARCHAR(250)
LANGUAGE plpgsql
AS
$$
BEGIN
RETURN CONCAT(title,' - ' ,rating);
END;
$$;
INSERT INTO detailed_table
SELECT DISTINCT rental_string(f.title, f.rating), c.name, l.name
FROM inventory AS i
JOIN film as f ON f.film_id = i.film_id
JOIN film_category as fc ON fc.film_id = f.film_id
JOIN category AS c ON c.category_id = fc.category_id
JOIN language AS l ON l.language_id = f.language_id
GROUP BY f.title, c.name, l.name
ORDER BY f.title;
CREATE TABLE detailed_table (
name_rating VARCHAR(250),
category VARCHAR(250),
film_language VARCHAR(250)
);
以下是我不断收到的错误:
错误:函数rental_string(字符变化,未知,mpaa_ rating)不存在 第 3 行:选择 DISTINCTrental_string(title, '', rating), c.name, l... ^ 提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
SQL状态:42883 性格:47
您的函数仅接受 2 个参数:标题 VARCHAR(250)、评级 VARCHAR(250)
但是,您的查询似乎传递了 3 个参数:
SELECT DISTINCT rental_string(title, '', rating), c.name, l...
这似乎是错误的原因
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
删除第二个参数(''),它应该可以工作!