Postgresql字符串连接:错误:语法错误位于或接近;味精;
我试图使用连接消息在Postgresql函数中引发问题,但在运行时收到错误消息:Postgresql字符串连接:错误:语法错误位于或接近;味精;,postgresql,runtime-error,string-concatenation,stored-functions,Postgresql,Runtime Error,String Concatenation,Stored Functions,我试图使用连接消息在Postgresql函数中引发问题,但在运行时收到错误消息: error: syntax error at or near "msg" 代码如下: CREATE OR REPLACE FUNCTION insertUserAccount( id bigint, nname varchar(40), email varchar(40), pwd varchar,
error: syntax error at or near "msg"
代码如下:
CREATE OR REPLACE FUNCTION insertUserAccount(
id bigint,
nname varchar(40),
email varchar(40),
pwd varchar,
status smallint,
last_update bigint,
preferences json,
bits integer,
adm json)
RETURNS bigint AS $$
DECLARE
rowc INTEGER;
ret_id bigint;
msg text;
BEGIN
...
IF ( rowc > 0 ) THEN
msg = 'User account already exists or name or email is unavailable (id=' || id
|| ', name=' || nname
|| ', email=' || email || ')';
RAISE EXCEPTION msg USING ERRCODE = '23505';
ELSE
...
在PL/pgSQL中使用
:=
在PL/pgSQL中使用:=
在PL/pgSQL中使用:=
在PL/pgSQL中使用:=
在PL/pgSQL中使用的实际问题是的语法错误。我将总体简化:
IF rowc > 0 THEN
RAISE EXCEPTION 'User account already exists or name or email is unavailable (id=%,name=%,email=%)'
, id, nname, email USING ERRCODE = '23505';
ELSE ...
那么可能根本不需要变量
msg
。通常最好保持较低的分配数量,因为在PL/pgSQL中分配的数量相当昂贵(与其他编程语言相比)。不是很戏剧性,但仍然..实际问题是的语法错误。我将总体简化:
IF rowc > 0 THEN
RAISE EXCEPTION 'User account already exists or name or email is unavailable (id=%,name=%,email=%)'
, id, nname, email USING ERRCODE = '23505';
ELSE ...
那么可能根本不需要变量
msg
。通常最好保持较低的分配数量,因为在PL/pgSQL中分配的数量相当昂贵(与其他编程语言相比)。不是很戏剧性,但仍然..实际问题是的语法错误。我将总体简化:
IF rowc > 0 THEN
RAISE EXCEPTION 'User account already exists or name or email is unavailable (id=%,name=%,email=%)'
, id, nname, email USING ERRCODE = '23505';
ELSE ...
那么可能根本不需要变量
msg
。通常最好保持较低的分配数量,因为在PL/pgSQL中分配的数量相当昂贵(与其他编程语言相比)。不是很戏剧性,但仍然..实际问题是的语法错误。我将总体简化:
IF rowc > 0 THEN
RAISE EXCEPTION 'User account already exists or name or email is unavailable (id=%,name=%,email=%)'
, id, nname, email USING ERRCODE = '23505';
ELSE ...
那么可能根本不需要变量
msg
。通常最好保持较低的分配数量,因为在PL/pgSQL中分配的数量相当昂贵(与其他编程语言相比)。不太夸张,但仍然..在PL/pgSQL中使用:=
。谢谢,如果您创建了一个答案,我会批准它。虽然:=
是一个很好的建议,但它无法解释错误。细节。取决于你的博士后版本。在最近的版本中有多个更新。请在PL/pgSQL中使用:=
。谢谢,如果您创建了一个答案,我会批准它。虽然:=
是一个很好的建议,但它无法解释错误。细节。取决于你的博士后版本。在最近的版本中有多个更新。请在PL/pgSQL中使用:=
。谢谢,如果您创建了一个答案,我会批准它。虽然:=
是一个很好的建议,但它无法解释错误。细节。取决于你的博士后版本。在最近的版本中有多个更新。请在PL/pgSQL中使用:=
。谢谢,如果您创建了一个答案,我会批准它。虽然:=
是一个很好的建议,但它无法解释错误。细节。取决于你的博士后版本。在最近的版本中有几个更新。我必须使用ERRCODE='23505'更改raiseexception msg;使用ERRCODE='23505'引发异常“%”,msg;我必须使用ERRCODE='23505'更改raiseexceptionmsg;使用ERRCODE='23505'引发异常“%”,msg;我必须使用ERRCODE='23505'更改raiseexceptionmsg;使用ERRCODE='23505'引发异常“%”,msg;我必须使用ERRCODE='23505'更改raiseexceptionmsg;使用ERRCODE='23505'引发异常“%”,msg;让它也能工作。