繁体   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