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

SQL quá dài đối với chuỗi

Vì bạn sử dụng Oracle, bạn nên sử dụng một biến liên kết thay vì SQL động và sau đó đặt giá trị trong bộ sưu tập tham số của đối tượng lệnh. Nó không chỉ ngăn SQL Injection mà còn tối ưu hóa tốt hơn truy vấn của bạn.

Ngoài ra, có vẻ như Câu lệnh SQL của bạn thiếu khoảng trắng trước mệnh đề order by. Điều đó có thể dễ dàng gây ra lỗi của bạn. Xem bên dưới - chưa được kiểm tra, nhưng sẽ cung cấp cho bạn ý tưởng.

SQL = "SELECT A.cust_ky, A.incid_id, A.OPEN_TS, A.CLOSE_TS, A.REC_UPD_TS, B.wrkgp_id, A.CURR_AGNT_KY, A.incid_ttl_dn " _
    & "FROM (MAINTBLS.INCID_FAB A INNER JOIN MAINTBLS.DEPTMNT B ON A.curr_wrkgp_ky=B.wrkgp_ky) " _
    & "WHERE B.wrkgp_id= :wrkgp And (A.open_fg = 1 OR A.pend_fg = 1) " _
    & "ORDER BY A.cust_ky, A.curr_agnt_ky ASC"

   With cmd
     .ActiveConnection = conn
     .CommandText = SQL
     .CommandType = adCmdText
     .Parameters.Append .CreateParameter(, adVarChar, adParamInput, wrkgp)
   End With


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giúp tính tổng phức tạp trong tập dữ liệu phân cấp

  2. Chuyển đổi cơ sở PL / SQL mà không có chức năng

  3. Hàm SOUNDEX () trong Oracle

  4. Có thể tham chiếu đến chuỗi thay thế thứ 10 và các chuỗi tiếp theo trong regexp_replace của Oracle không?

  5. Oracle 11g:Mặc định thành giá trị tĩnh khi truy vấn không trả về gì