如何在PostgreSQL中插入引号

14 浏览
0 Comments

如何在PostgreSQL中插入引号

这个问题已经有了答案

在PostgreSQL中插入带单引号的文本

如何使用存储过程在postgres中插入双引号和单引号。

I have create the table as :
CREATE TABLE public.test (
  id INT, 
  name varchar(50),
  lname varchar(100)
) 
WITH (oids = false);

2. 创建了用于插入该表的存储过程。

CREATE OR REPLACE FUNCTION test_insert( p_array in TEXT[] ) RETURNS TEXT AS
$$
DECLARE
  arrstrMixrecordData ALIAS FOR $1;
  plid integer = 0;
  pid integer = arrstrMixrecordData[1];
  pname varchar = arrstrMixrecordData[2];
  plname varchar = arrstrMixrecordData[3];
BEGIN
  INSERT INTO
    test(id, name, lname)
  values
    (pid, pname, plname);
  plid = ( SELECT id from test ORDER BY id desc limit 1 );
  plid = plid + 1;
  RETURN plid;
END;
$$
  LANGUAGE plpgsql;

3. 使用此查询插入数据:

SELECT * from test_insert( '{1,abc,pqr}'::TEXT[] );

它有效!

4. 当双引号出现在单引号中,反之亦然时,所有以下组合均失败。

SELECT * from test_insert( '{1,ab"c,pqr}'::TEXT[] );
SELECT * from test_insert( "{1,ab'c,pqr}"::TEXT[] );
SELECT * from test_insert( "{1,ab"c,pqr}"::TEXT[] );
SELECT * from test_insert( '{1,ab'c,pqr}'::TEXT[] );

如何使用存储过程插入上述数据?

admin 更改状态以发布 2023年5月21日
0
0 Comments

我没有完整地阅读你的问题,但是请参考Postgres文档中的quote_identquote_literal以获取可能适合你需要的引用技术。

否则,你可能需要以下内容:

SELECT * from test_insert( E'{1,ab\'c,pqr}'::TEXT[] );

0