sql - 当节点具有 XML 类型的数字时,.value 如何工作
问题描述
我正在尝试访问用数字而不是 SQL Server XML 数据类型上的文本定义的节点。
为什么这个陈述有效
DECLARE @myDoc xml
DECLARE @ProdID int
SET @myDoc = '<Root>23</Root>'
SET @ProdID = @myDoc.value('(/Root)[1]', 'int' )
SELECT @ProdID
但是这个不
DECLARE @myDoc xml
DECLARE @ProdID int
SET @myDoc = '<1>23</1>'
SET @ProdID = @myDoc.value('(/1)[1]', 'int' )
解决方案
我更改了第 3 行:
DECLARE @myDoc xml
DECLARE @ProdID int
SET @myDoc = CAST('<Root>23</Root>' AS XML)
SET @ProdID = @myDoc.value('(/Root)[1]', 'int' )
SELECT @ProdID
推荐阅读
- python - Pytesseract 不断收到语法或路径错误
- python - 仅使用单个列表输入填充矩阵
- android-studio - 如何从 Android Studio Gradle 建议中排除 SNAPSHOT 或其他依赖项
- javascript - 使用 Bootstrap 5.0.0 和 Webpacker 的动态模式
- flutter - 警报对话框中的文本不会立即更新
- python - 使用存储在 CSV 文件中的值更新 Python lxml etree subElement 属性
- powershell - 如何正确地将移动项目结果附加到 Powershell 中移动的每个项目的变量
- amazon-web-services - AWS:将 Amplify 连接到 Route 53 上的自定义域
- r - 如何在r中合并两个excel电子表格?
- python - 如何使用 Docker 的 ENV 变量为 Python 脚本避免 Windows 路径错误?