CREATE PROCEDURE test()
BEGIN
SELECT 'hello, I am a Procedure' AS hi;
END
字符串
错误:
ERROR: syntax error (example position: "SELECT")
LINE 3: SELECT 'hello, I am a Procedure' AS hi;
^
ERROR: syntax error (example position: "SELECT")
SQL state: 42601
Character: 32
型
我试图创建一个过程,但没有工作,我不知道该怎么办,我上网冲浪。我使用SQL剪贴簿(Eclipse(Java)),我试图通过pgAdmin 4运行查询,它也不工作。
2条答案
按热度按时间dsekswqp1#
对于Postgres,
CREATE PROCEDURE
文档说你可以使用AS $$ ... $$
或BEGIN ATOMIC ... END
语法:字符串
对于SQL Server,不带参数的procedure声明时不带括号,不要忘记
AS
:型
deikduxw2#
你试图返回一个字符串。
PROCEDURE
(从Postgres 16开始)只能通过使用INOUT
或OUT
参数返回一行。所以你的尝试翻译为:字符串
或者Postgres 14或更高版本中的“SQL标准”变体:
型
或者这个简单例子的缩写形式:
型
你必须
CALL
一个过程来执行:型
我们可以在调用中省略
INOUT
参数,因为我们将NULL
声明为默认值(我们应该这样做)。参见:
我怀疑你只是爱上了广泛使用的“存储过程”这个错误的名称,并且真的想要一个
FUNCTION
。