【问题标题】:Declare and return a json variable with postgresql function使用 postgresql 函数声明并返回一个 json 变量
【发布时间】:2023-02-01 18:08:17
【问题描述】:

我正在尝试创建一个函数 PostgreSQL,通过创建一个返回 JSON 变量的函数来检查用户表中是否存在用户。

CREATE OR REPLACE FUNCTION login( uname character varying(55),pswd character varying(55)) 
RETURNS json AS
$$
DECLARE
  msg json ;
BEGIN
IF ((SELECT COUNT(*) FROM (SELECT * FROM users WHERE username=uname and password=pswd) AS row_count) =1)
THEN
msg="{ 'stat' : 'active' }";
    RETURN msg;
ELSE
msg="{ 'stat' : 'inactive' }";
    RETURN msg;
END IF;    
END;
$$ LANGUAGE plpgsql;

但是当我尝试使用它时,它会返回以下错误: 错误:列“{'stat':'inactive'}”不存在

【问题讨论】:

    标签: json database postgresql function


    【解决方案1】:

    在 SQL(和 PL/pgSQL)中,字符串常量需要用单引号括起来。并且 JSON 对键和值使用双引号,因此 { 'stat' : 'active' } 也是无效的 JSON。

    你需要:

    msg := '{"stat": "active"}';
    

    该变量并不是真正需要的,您也可以使用:

    return '{"stat": "active"}';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2021-05-30
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多