【发布时间】:2014-11-09 18:57:45
【问题描述】:
如何使用存储过程在 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[] );
如何使用存储过程插入以上数据??
【问题讨论】:
-
失败并出现什么错误到底是什么?
标签: php postgresql