sql >> Database teknologi >  >> RDS >> Oracle

SQL for lang til String

Da du bruger Oracle, bør du bruge en bind-variabel i stedet for dynamisk SQL og derefter indstille værdien i parametersamlingen for kommandoobjektet. Det vil ikke kun forhindre SQL Injection, men det vil bedre optimere din forespørgsel.

Det ser også ud til, at din SQL-sætning mangler et mellemrum før orden efter klausul. Det kan nemt forårsage din fejl. Se nedenfor - utestet, men burde give dig ideen.

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. Split funktion i SQL Server 2008

  2. Hvordan Sinh() virker i PostgreSQL

  3. Laravel - multi-indsæt rækker og hent id'er

  4. hvordan man kopierer et skema i mysql ved hjælp af java