如何插入双引号
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[] );
如何使用存储过程插入上述数据??
我没有完全阅读您的问题,但请参阅Postgres文档中的quote_ident
和quote_literal
,了解可能适合您需要的报价技巧。
否则,您可能需要以下内容:
SELECT * from test_insert( E'{1,ab\'c,pqr}'::TEXT[] );
问题内容: 几个月前,我从关于Stack Overflow的答案中学到了如何使用以下语法在MySQL中一次执行多个更新: 我现在已经切换到PostgreSQL,显然这是不正确的。它指的是所有正确的表,因此我认为这是使用不同关键字的问题,但是我不确定在PostgreSQL文档的哪个地方覆盖了这个问题。 为了澄清,我想插入几件事,如果它们已经存在,请对其进行更新。 问题答案: 自9.5版起的Postg
这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 在Insert中,关于PostgreSQL中的重复更新?详细讨论了这个主题,但这是关于MySQL语法的替代方法,随着时间的推移,它增加了一些无关的细节。我
查询工作正常,并返回列中有的所有记录。 但是,如果我想获取在中存在的所有记录,我就无法形成正确的查询。 查询不转义单引号,而是按字面意思转义,导致查询不完整。
这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 这就是人们在讨论时所谈论的。至关重要的是,在同一表上存在多个事务的情况下,任何方法都必须是安全的--要么使用显式锁定,要么以其他方式防止产生的竞争条件。
问题内容: 我在使用java.text.MessageFormat对象时遇到问题。 我正在尝试创建SQL插入语句。问题是,当我做这样的事情时: 我得到这个的价值: 如您所见,问题在于用单引号引起来的任何目标位置都不会被参数替换。我已经尝试过使用像这样的双单引号和这样的转义字符:但它仍然给出相同的结果。 编辑:我忘了提到我也尝试过。结果是:。它保留了原始引号,但仍未插入值。 我该如何解决这个问题?作
问题内容: 例如,运行查询并查看输出后, 我的输出如下 我将如何导出这些数据,使其看起来如下所示? 还是有一种方法可以在SQL中执行此操作以修改记录以包含引号? 因为在导出时,无论如何都会包含逗号,对吗? 问题答案: 如果您感兴趣的列不超过128个字符,则可以使用QUOTENAME函数。小心一点,因为任何超过128个字符的字符都会返回。