持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
第158章 SQL函数 XMLCONCAT
注:IRIS函数。
连接 XML 元素的函数。
大纲
XMLCONCAT(XmlElement1,XmlElement2[,...])
参数
XmlElement- XMLELEMENT 函数。指定两个或多个要连接的XmlElement。
描述
XMLCONCAT 函数将来自多个 XMLELEMENT 函数的值作为单个字符串返回。 XMLCONCAT 可用于引用表或视图的 SELECT 查询或子查询。 XMLCONCAT 可以与普通字段值一起出现在 SELECT 列表中。
示例
以下查询连接来自两个 XMLELEMENT 函数的值:
SELECT Name,XMLCONCAT(XMLELEMENT("Para",Name),
XMLELEMENT("Para",Home_City)) AS ExportString
FROM Sample.Person
ExportString
<Para>Emerson,Molly N.</Para><Para>Boston</Para>
以下查询将 XMLCONCAT 嵌套在 XMLELEMENT 函数中:
SELECT XMLELEMENT("Item",Name,
XMLCONCAT(
XMLELEMENT("Para",Home_City,' ',Home_State),
XMLELEMENT("Para",'is residence')))
AS ExportString
FROM Sample.Person
ExportString
<Item>Emerson,Molly N.<Para>Boston MA</Para><Para>is residence</Para></Item>
面向过程与面向对象
我们首先了解一下什么是面向过程?
刚开始的高级语言编写,大多是面条式的代码,随着代码的复杂化,会造成代码极度混乱。之后出现了结构化编程,即面相过程式的开发。这种方式把代码分割成了多个模块,增强了代码的复用性,方便了调试和修改,但是结构也相对复杂一些。面相过程的开发把需求理解成一条一条的业务流程,开发前总是喜欢问用户,你的业务流程是什么样的,然后他们分析流程,把这些流程交织组合在一起,然后在划分成一个又一个的功能模块,最终通过一个又一个的函数实现了需求,这对一个小型的软件来说,或许是最直接最间接的做法。
但是众所周知咱们的his系统是拥有相当庞大且复杂的业务模块和流程体系。因为传统Caché的编程方式就是面向过程,而问题也就是出在了这里,随着系统的不断复杂化,这样的做法有很大的弊端。无论分析做的如何好,也无法从用户哪里获得所有的需求。业务流程是需求中最可能变化的地方。这就使得按照业务流程设计的程序经常面临变化。
因为面向过程是通过划分功能模块,通过函数间相互调用来实现,当需求变化时就需要更改函数,而改动的函数有多少地方在调用它,关联多少数据,这是很不容易弄得清楚的地方,而且函数的修改极有可能引起不必要的bug出现,维护和调试中所耗费的大多时间不是花在修改bug上,而是花在寻找bug上。面相过程的开发已经不能适应软件的发展。