Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

SQL स्ट्रिंग के लिए बहुत लंबा है

चूंकि आप Oracle का उपयोग करते हैं, इसलिए आपको डायनेमिक SQL के बजाय एक बाइंड वैरिएबल का उपयोग करना चाहिए और फिर कमांड ऑब्जेक्ट के पैरामीटर संग्रह में मान सेट करना चाहिए। यह न केवल SQL इंजेक्शन को रोकेगा, बल्कि यह आपकी क्वेरी को बेहतर ढंग से अनुकूलित करेगा।

साथ ही, ऐसा लगता है कि आपके SQL कथन में खंड के क्रम से पहले कोई स्थान नहीं है। यह आसानी से आपकी त्रुटि का कारण बन सकता है। नीचे देखें - परीक्षण नहीं किया गया, लेकिन आपको विचार देना चाहिए।

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. Oracle SQL डेवलपर - java.library.path में कोई ocijdbc12 नहीं है

  2. ओरेकल भौतिकीकृत दृश्य ताज़ा समय

  3. Oracle यूनिकोड स्पूलिंग

  4. Oracle:क्या हाल ही में SQL सिंटैक्स त्रुटियाँ प्राप्त करने का कोई तरीका है?

  5. खोजें कि क्या संख्या एक व्यंजक में समाहित है जैसे:1-3,5,10-15,20