簡體   English   中英

創建postgres存儲過程的問題| Postgres 12

[英]Problem on creating postgres stored procedure | Postgres 12

我是 Postgres 的新手,所以我需要你的幫助。

postgres=# select version();
                          version
------------------------------------------------------------
 PostgreSQL 12.3, compiled by Visual C++ build 1914, 64-bit
(1 row)

1. CREATE PROCEDURE test (INT,varchar(200))
2. LANGUAGE plpgsql    
3. AS $$
4. BEGIN
5.
6.  create table test1 as
7.  select id,name from mst_user_mobile limit 5
8.
9.    COMMIT;
10. END;
11. $$;

從我的閱讀來看,10 以上的 Postgres 版本支持 PROCEDURE 方法。 但是當我執行代碼時,它總是在第 1 行出錯(在單詞 PROCEDURE 上)

我得到的這里錯誤:

ERROR:  syntax error at or near "PROCEDURE"
LINE 1: CREATE PROCEDURE test (INT,varchar(200))
               ^
SQL state: 42601
Character: 8

歡迎任何幫助

您報告正在使用 Postgres 12.3。 然而,報告的錯誤消息正是我在 Postgres 10(或更早版本)中看到的:

 ERROR: syntax error at or near "PROCEDURE" LINE 1: CREATE PROCEDURE test (INT,varchar(200))

db<> 在這里擺弄

CREATE PROCEDURE是在 Postgres 11 中引入的。
我懷疑您連接到錯誤/不同的數據庫。

除此之外,您的示例可能只是function COMMIT作為最后一個命令毫無意義。 看:

或者,它是CREATE PROCEDURE命令之前缺少的另一個分號 (您在問題中展示了另一個。)我也可以通過這種方式重現錯誤消息:

db<> 在這里擺弄

我想問題是; END和最后一個$$上。 在這種情況下你不應該使用它們!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM