【发布时间】:2014-10-08 04:21:02
【问题描述】:
我有一个包含常见主题文本的表,需要在运行时插入一些字符串。例如下面:
CREATE TABLE certification.cert_email_dtls (
cert_eid_id numeric(10,0),
cert_eid_email_body character varying(8000),
);
insert into certification.cert_email_dtls(1,'hello world <blank-value1>);
insert into certification.cert_email_dtls(2,'hello guys <blank-other-value2>);
insert into certification.cert_email_dtls(3,'hello <blank-value3> india <some-other-value4>);
等等。 <some-value>,<some-other-value> 等在运行时出现。
SELECT cert_eid_id ,
cert_eid_email_body,
INTO v_id,
v_email_body_end
FROM certification.cert_email_dtls where cert_eid_id = in_id;
我的要求是插入介于两者之间的一些值并生成最终的电子邮件正文。
【问题讨论】:
-
一方面,PostgreSQL有
replace()和regex_replace()string functions。另一方面,是否有令人信服的理由使用 SQL 而不是使用应用程序代码来做到这一点? -
有多少个不同的占位符?它们是唯一的还是可以在多行中弹出?您是检索单行还是一次检索多行?一行可以有多少个占位符?这应该是服务器端函数中的 SQL 或 PL/pgSQL 代码吗?并且总是,请使用您的 Postgres 版本。
标签: sql postgresql placeholder