Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn SQL Server Xml với tiền tố chưa được khai báo

Ví dụ của bạn không hợp lệ theo hai cách:

  1. Không được phép có tiền tố vùng tên mà không có khai báo vùng tên tương ứng.
  2. Kết thúc của bạn các thẻ không bao gồm / ở khắp mọi nơi ...

Đây là một cách hack xấu xí, nhưng bạn có thể thử cách này:

DECLARE @Params XML
SET @Params = REPLACE('<filter>
                      <ns0:from>2016-09-19</ns0:from>
                      <ns0:to>2017-01-01</ns0:to>
               </filter>','ns0:','');
SELECT @Params.value('(/*:filter/*:from)[1]', 'date') AS [from];

Nếu bạn không biết trước tất cả các tiền tố không gian tên, điều này sẽ thực sự phức tạp ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sqlcmd để tạo tệp không có dòng gạch ngang dưới tiêu đề, không có số hàng

  2. sql server 2008 Đăng nhập không thành công cho người dùng 'NT AUTHORITY \ NETWORK SERVICE'

  3. Cách chèn nhiều hàng vào bảng dựa trên một dãy số

  4. Chuyển đổi không thành công khi chuyển đổi ngày và / hoặc giờ từ chuỗi ký tự trong khi chèn ngày giờ

  5. Tại sao KHÔNG NULL trả về giá trị NULL cho Varchar (tối đa) trong SQL Server?