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

Không thể truyền TEXT sang XML trong SQL Server

Vấn đề của bạn là:bạn có XML với encoding="utf-16" , nhưng cột của bạn là cột không phải Unicode ......

Giả sử rằng bạn không thể thay đổi nó thành NTEXT hoặc, bạn phải thực hiện hai CAST lồng nhau để đạt được những gì bạn đang tìm kiếm:

SELECT 
    CAST(CAST(XML AS NTEXT) AS XML).value('(/Record/UserGuid)[1]', 'NVARCHAR(max)')
FROM 
    tbl_Module_RequestForms_Items

Trước tiên, bạn cần truyền sang NTEXT (hoặc NVARCHAR(MAX) ), và sau đó bạn phải truyền kết quả đó sang XML , trước khi bạn có thể sử dụng nó.

Mẹo: loại bỏ những "lý do khác" đó và chuyển đổi nó thành XML kiểu dữ liệu nếu bạn thực sự cần sử dụng nó dưới dạng XML .....



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách TRY_CAST () hoạt động trong SQL Server

  2. Xem các biến trong SSIS trong quá trình gỡ lỗi

  3. Những hạn chế của SqlDependency là gì?

  4. Hoạt động công việc SQL Server (công việc không thành công nhưng bản ghi lịch sử trong hoạt động công việc vẫn hiển thị trạng thái 'đang chạy')

  5. Mã hóa ký tự mặc định của SQL Server