程序(未知)不存在 PostgreSQL
Procedure (unknown) does not exist PostgreSQL
我是 PostgreSQL 的新手,正在尝试了解 PostgreSQL 的存储过程。这是我遵循的步骤。
- 已安装 pgAdmin4
- 创建数据库
- 在 public 架构下创建了 table“用户”
- 创建了过程“GetUserByEmail”
CREATE OR REPLACE PROCEDURE GetUserByEmail
(
Email Varchar(100)
)
LANGUAGE plpgsql AS
$$
BEGIN
Select * from public."Users" where "Email" = Email
END
$$;
从查询工具调用它时,出现错误。
CALL public.GetUserByEmail('d@d.com')
ERROR: procedure public.getuserbyemail(unknown) does not exist LINE
1: CALL public.GetUserByEmail('d@d.com')
^ HINT: No procedure matches the given name and argument types. You might need to add explicit type casts. SQL state: 42883
Character: 6
检查权限,用户有执行权限
尝试了不同的方法,但不确定哪里出了问题。
Are PostgreSQL column names case-sensitive?
如果你 create table "users"(a int...)
那么你每次 select/update/delete "users"
table.
都会坚持 "users"
你可以轻松模仿38.5.9. SQL Functions Returning Sets
(https://www.postgresql.org/docs/current/xfunc-sql.html)
CREATE FUNCTION getusers(text) RETURNS SETOF "users" AS $$
SELECT * FROM "users" WHERE email = ;
$$ LANGUAGE SQL;
SELECT * FROM getusers('hi') AS t1;
我是 PostgreSQL 的新手,正在尝试了解 PostgreSQL 的存储过程。这是我遵循的步骤。
- 已安装 pgAdmin4
- 创建数据库
- 在 public 架构下创建了 table“用户”
- 创建了过程“GetUserByEmail”
CREATE OR REPLACE PROCEDURE GetUserByEmail
(
Email Varchar(100)
)
LANGUAGE plpgsql AS
$$
BEGIN
Select * from public."Users" where "Email" = Email
END
$$;
从查询工具调用它时,出现错误。
CALL public.GetUserByEmail('d@d.com')
ERROR: procedure public.getuserbyemail(unknown) does not exist LINE 1: CALL public.GetUserByEmail('d@d.com')
^ HINT: No procedure matches the given name and argument types. You might need to add explicit type casts. SQL state: 42883 Character: 6
检查权限,用户有执行权限
尝试了不同的方法,但不确定哪里出了问题。
Are PostgreSQL column names case-sensitive?
如果你 create table "users"(a int...)
那么你每次 select/update/delete "users"
table.
你可以轻松模仿38.5.9. SQL Functions Returning Sets
(https://www.postgresql.org/docs/current/xfunc-sql.html)
CREATE FUNCTION getusers(text) RETURNS SETOF "users" AS $$
SELECT * FROM "users" WHERE email = ;
$$ LANGUAGE SQL;
SELECT * FROM getusers('hi') AS t1;