Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL terlalu panjang untuk String

Karena Anda menggunakan Oracle, Anda harus menggunakan variabel bind alih-alih SQL dinamis dan kemudian menetapkan nilai dalam kumpulan parameter objek perintah. Tidak hanya akan mencegah SQL Injection, tetapi juga akan mengoptimalkan kueri Anda dengan lebih baik.

Juga, sepertinya Pernyataan SQL Anda tidak memiliki spasi sebelum klausa order by. Itu dapat dengan mudah menyebabkan kesalahan Anda. Lihat di bawah - belum diuji, tetapi akan memberi Anda ide.

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. Perhitungan Biaya Rata-Rata Inventaris dalam SQL

  2. Menyebarkan situs web ASP.NET dengan ODP.NET

  3. Apa implikasi kinerja Oracle IN Clause tanpa bergabung?

  4. Tidak dapat menghapus dalam database karena kendala

  5. ORA-06553:PLS-801:kesalahan internal [55018] saat menguji fungsi mengembalikan ROWTYPE