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

Chuyển một mảng dưới dạng giá trị trong Ado.net DBParameter

Đối với SQL-Server, có hai cách tiếp cận phổ biến cho việc này. Tùy chọn thứ ba cần tránh là chuyển vào một varchar và nối nó vào một câu lệnh SQL động với IN - đây là một bề mặt tấn công tiêm rõ ràng.

Các lựa chọn hợp lý:

  • chuyển vào một varchar và sử dụng UDF để chia nhỏ dữ liệu trên dấu phân cách ( thích trong câu hỏi này ), có thể là dấu phẩy, dấu gạch ngang, tab, v.v. Tham gia vào kết quả:

    SELECT something, anotherthing
    FROM atable a
    INNER JOIN dbo.SplitUDF(@values) udf
            ON udf.Value = a.something
    
  • sử dụng tham số bảng giá trị (SQL2008) và tham gia trực tiếp (tránh UDF)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối cơ sở dữ liệu MS SQL Server với cơ sở dữ liệu Oracle 11g

  2. Bạn không có Ứng dụng ngầm trong phạm vi:PlayFramework với Oracle

  3. Oracle DataReader trả về 1 hàng nhưng phương thức Read trả về false

  4. Ánh xạ một lớp Thực thể sang hai cơ sở dữ liệu khác nhau (Oracle và Ingres)

  5. Có thể xảy ra bế tắc với cùng một phương thức truy cập không?