![](/img/trans.png)
[英]In PGADMIN4 POSTGRESQL10.14 how to add EXCEPTION clause
[英]Stored Procedure error in POSTGRESQL PGADMIN4
當我嘗試在 PGADMIN4 中創建存儲過程或存儲函數時出現以下錯誤。 我該如何解決:
錯誤:“程序”處或附近的語法錯誤
第 1 行:創建或替換過程轉移(
創建表的代碼:
drop table if exists accounts;
create table accounts (
id int generated by default as identity,
name varchar(100) not null,
balance dec(15,2) not null,
primary key(id)
);
insert into accounts(name,balance) values('Bob',10000);
insert into accounts(name,balance) values('Alice',10000);
添加以下存儲過程后收到錯誤:
create or replace procedure transfer(
sender int,
receiver int,
amount dec
)
language plpgsql
as $$
begin
-- subtracting the amount from the sender's account
update accounts
set balance = balance - amount
where id = sender;
-- adding the amount to the receiver's account
update accounts
set balance = balance + amount
where id = receiver;
commit;
end;$$
過程僅在 Postgres 版本 11 開始可用,而您使用版本 9.4 標記您的問題。
在早期版本中,您可以改用 void 函數。 基本上,替換:
create or replace procedure transfer(sender int, receiver int, amount dec)
language plpgsql
as $$
begin
...
end; $$
和:
create or replace function transfer(sender int, receiver int, amount dec)
returns void
language plpgsql
as $$
begin
...
end; $$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.