我正在尝试编写SQL Server查询以从XML列中选择值.
列messagebody(类型XML)的内容如下:
<?xml version="1.0" encoding="utf-16"?>
<GetActivityUnemploymentGenerelEventType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ActivityItem xmlns="http://service.bmuuuu/">
<ActivityCoreItem xmlns="http://service.bmxxxx">
<ActivityIdentifier xmlns="http://service.bmyyyy">d5ck7132-703c-1234-8099-963b35b24bc5</ActivityIdentifier>
<StartDate xmlns="http://service.bmaaa">2016-01-25</StartDate>
Run Code Online (Sandbox Code Playgroud)
我正试图指出startdate和的价值ActivityIdentifier.
我试过几个解决方案fx:
SELECT XML.query('messagebody(/GetActivityUnemploymentGenerelEventType/ActivityItem/ActivityCoreItem/ActivityIdentifier)')
FROM table
SELECT messagebody.value('(/GetActivityUnemploymentGenerelEventType/ActivityCoreItem/ActivityIdentifier/Value)[1]', 'int')
FROM table
SELECT messagebody.value('(/GetActivityUnemploymentGenerelEventType//ActivityCoreItem/ActivityIdentifier())[1]', 'nvarchar(max)')
FROM table
Run Code Online (Sandbox Code Playgroud)
查询结果:
找不到列"messagebody"或用户定义的函数或聚合"messagebody.value",或者名称不明确.
有什么建议?
最近我们升级到 Freemarker 2.3.22。我们在我们的产品中多次实现了 TemplateMethodModel 接口。现在我们收到有关 TemplateMethodModel 已弃用的警告,并考虑使用 TemplateMethodModelEx。
是否有任何特定的事情可以仅使用 TemplateMethodModelEx 完成?
当我收缩数据库时,机器重新启动,从那时起就SQL Server (MSSQLSERVER)没有启动。阅读博客后,我替换了master.mdf和 mastlog.ldf用相同的文件替换了模板文件夹中的
但是问题仍然存在,错误日志文件给出以下消息,
Starting up database 'msdb'.
Starting up database 'mssqlsystemresource'.
Error: 17204, Severity: 16, State: 1.
FCB::Open failed: Could not open file E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf for file number 1. OS error: 3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf". Operating system error 3: "3(The system cannot find the path specified.)".
Error: 17207, Severity: 16, State: 1.
FileMgr::StartLogFiles: Operating system error 2(The system …Run Code Online (Sandbox Code Playgroud) 我在 ssms 中打开一个新查询并创建一个全局临时表。然后我在 ssms 中打开一个新的查询窗口并编写 sql 在字段中插入数据。但在新的查询窗口中,intellisense 无法识别临时表。sql 工作正常,数据被插入到临时表中,我可以使用临时表,但没有智能感知。我可以返回到创建表的原始查询窗口,并且智能感知工作正常。我尝试过刷新智能感知,但不起作用。任何建议将不胜感激。
表代码是
CREATE TABLE ##UserInfo
(
[UserId] int NOT NULL IDENTITY (1, 1),
[strEmail] varchar(50) NULL,
[strLastName] varchar(50) NULL,
[strFirstName] varchar(50) NULL,
)
Run Code Online (Sandbox Code Playgroud)
插入代码
insert into ##Userinfo(strLastName,strFirstName)
select distinct POC_DATA.POC_LNAME, POC_DATA.POC_FNAME
from POC_DATA
Run Code Online (Sandbox Code Playgroud)
粗体是智能感知在不同查询窗口中无法识别的部分
我在 SQL Server 中有 xml 格式的数据。现在我试图根据我的查询找出单个记录。我把我的代码放在下面,
declare @xml xml
declare @ID varchar
set @ID = '1'
set @xml = '
<row>
<Id>1</Id>
<name>OM</name>
</row>
<row>
<Id>2</Id>
<name>JAI</name>
</row>
<row>
<Id>2</Id>
<name>JAGDISH</name>
</row>
'
Run Code Online (Sandbox Code Playgroud)
当我执行我的查询时,它会给我一个正确的结果(xml 节点):
Select @xml.query('/row[Id="1"]');
Run Code Online (Sandbox Code Playgroud)
但是当我连接 @ID 进行查询时,它给了我一个错误:
Select @xml.query('/row[Id='+ @ID +']');
Run Code Online (Sandbox Code Playgroud)
错误是:
XML 数据类型方法“query”的参数 1 必须是字符串文字。
我尝试从存储在 S3 存储桶中的 bak 文件到 RDS SQL Server Web 版本运行恢复查询,但不断收到此错误:
[2017-09-13 20:30:22.227] 由于任务失败或并发 RESTORE_DB 请求而中止任务。[2017-09-13 20:30:22.287] 磁盘上没有足够的空间来执行恢复数据库操作。
bak文件有77GB,DB有2TB,为什么还不够呢?
这是来自 AWS 文档的查询:
exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';
Run Code Online (Sandbox Code Playgroud)
我想编写一个脚本来管理WildFly的启动和部署,但是现在遇到了麻烦。要检查服务器是否已启动,我找到了以下命令
./jboss-cli.sh -c command=':read-attribute(name=server-state)' | grep running
但是当服务器启动时,由于控制器不可用,因此./jboss-cli.sh -c无法连接并返回错误。
有没有更好的方法来检查WildFly是否已完全启动?
我想创建一个存储过程,将Archive表中的一些记录插入主表.
我的问题是客户端在他的网格中有多个复选框,他/她可以检查任意数量的复选框.每个复选框代表Archive表中的记录.每条记录都由orderNo.基于orderNo我想创建一个存储过程,从Archive表中获取记录并将其插入主表.
我的问题:如何有效地处理此存储过程中的未知数量的参数?在伪代码中:
create procedure moveRecords(what parameters i should take here)
as
begin
insert into mainTable(orderNo,date,siteID) select orderNo,date,siteID from
ArchiveTable where orderNo=<here what i write>
Run Code Online (Sandbox Code Playgroud)
客户端可以发送1个参数,2个,3个,10个,20个参数等我们不知道.类似于以下内容:
exec moveRecords(any no. of parameters)
Run Code Online (Sandbox Code Playgroud)
我提出了如下解决方案:
orderNo(由客户端发送)放入一个temp_Table并从temp_Table我的存储过程中检索这些. orderNo在数组的基础上采用数组和调用过程.我正在寻找替代品.
我需要找到具有相同姓名和出生日期的用户。我还必须包含每个人的客户端 ID,因此我无法COUNT(*)与 group by 一起使用。我ROW_NUMBER()在 CTE 中使用按这三列进行分区。但我需要包含所有多个值,包括where rownumber = 1.
这就是我现在所拥有的:
;WITH
Rownumbers AS
(
SELECT
[Client code]
,Name
,Surname
,[Date of Birth]
,ROW_NUMBER() OVER
(PARTITION BY
name
,surname
,[DATE of birth]
ORDER BY
[client code]
)AS [Row Number]
FROM
kyc_details
)
SELECT
,[client code]
,Name
,Surname
,[DATE of birth]
,[Row Number]
FROM
[Rownumbers]
WHERE
[Row Number] > 1
Run Code Online (Sandbox Code Playgroud)
这里的问题是,我需要包括rownumber = 1. 本质上,我需要选择所有具有重复值的列,但客户端代码将是唯一的。
我正在尝试使用“Hello World”作为概念证明,sqlcmd但我很难:
命令:
sqlcmd 'cmd.exe'
Run Code Online (Sandbox Code Playgroud)
错误:
找不到存储过程“sqlcmd”。
我在 BCP 上遇到了类似的问题:
bcp "SELECT Col1,Col2,Col3 FROM MyDatabase.dbo.MyTable"
Run Code Online (Sandbox Code Playgroud)
找不到存储过程“bcp”。
这是一台 SQL Server 2014 机器。这是怎么回事,我该如何解决?
sql-server ×8
sql ×4
t-sql ×3
amazon-rds ×1
bcp ×1
freemarker ×1
intellisense ×1
jboss-eap-7 ×1
row-number ×1
sqlcmd ×1
wildfly ×1
xml ×1