DB2 SQL/XML使用
函数:
XMLPARSE:解析字符或者大对象二进制数据,产生XML
XMLSERIALIZE:将XML值转换为字符或者大对象二进制数据
XMLVALIDATE:根据XML schema校验XML值的有效性
XMLEXISTS:检测XQuery是否返回结果(如由一个或多个项所组成的序列)
XMLQUERY:执行一个XQuery并以一个序列返回结果
XMLTABLE:执行一个XQuery,以关系数据表形式返回结果(如果可能的话)
XMLCAST:XML类型转换
XMLEXISTS:
SELECT name from clients
WHERE xmlexists(
'$c/Client/Address[zip="95116"]'
passing clients.contact as "c"
)
说明:
在WHERE子句中调用XMLEXISTS函数,参数指定了XML路径表达式,DB2据此导航到XML文档邮编元素并且查找值 95116。 “$c/Client/Address”指定了DB2在XML文档中定位邮编元素的路径。美元符号($)用来指定变量。passing clients.contact as "c"对变量c进行定义。这里,“clients”是表名,“contact”是 XML列的列名。换言之,XML文档传递给了变量c。 DB2检索“contact”列中的XML数据,从根节“client”向下,通过节点“Address”到节点“zip”,经过目标邮编匹配检查判断该客户是否居住在目标地区。
在DB2 9.5中进行了简化:
SELECT name from clients
WHERE xmlexists(
'$CONTACT/Client/Address[zip="95116"]'
)
XMLQuery:
SELECT xmlquery('$c/Client/email' passing contact as "c")
from clients
WHERE status = 'Gold'
使用XQuery FLWOR表达式中的for:
SELECT name, xmlquery(
‘for $e in $c/Client/email[1] return $e’
passing contact as “c”
)
from clients
WHERE status = ‘Gold’
SELECT xmlquery('for $e in $c/Client/email[1]/text()
return <p>{$e}</p>'
passing contact as "c")
from clients
WHERE status = 'Gold'
XQuery的FLWOR表达式 FLWOR是几个词首字母的缩写:
FOR:对序列进行迭代
LET:绑定变量
WHERE:定义过滤器
ORDER:将过滤结果排序
RETURN:返回查询结果
实例:
CREATE TABLE dept(deptID CHAR(8),deptdoc XML);
将如下XML文档插入到deptdoc列:
相关文档:
---附加数据库
sp_attach_db '数据库名','数据库全路径','数据库日志全路径'
---查看数据库逻辑文件名
RESTORE FILELISTONLY from disk = '备份文件'
---还原数据库
restore database hzrb from disk = '备份文件'
with move '主逻辑名' to '存放mdf路径' ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[pr_xls_to_tb]
@path varchar(200),--EXCEL路径名
@tbName varchar(30),--表名
@stName varchar(30) --excel中要读的SHEET名
as
declare @sql varchar(500),--最后要执行的SQL
@stName_Real varchar(35),--真正的SHEET名
......
讲解SQL Server中容易混淆的数据类型
(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应 ......
对于服务器上数据的备份工作是网管员日常工作中最重要的工作之一,SQLServerAgent服务使得我们可以用SQL上的“数据库维护计划”功
能来自动备份数据,但最近我发现服务器上SQLServerAgent服务无法启动了,回想最近所做的操作,原来是因为我把SQL中
Builtin/Administrators这个帐号的服务器访问权限禁止 ......
十一、以上函数的部分实例
1:replace 函数
第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么
select replace('lihan','a','b')
& ......