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

इसके बीच सिंगल कोट्स वाले डेटा डालने में त्रुटि

स्ट्रिंग से बचने के लिए आपको कोड नहीं लिखना चाहिए। तथ्य यह है कि आपको स्ट्रिंग से बचने की आवश्यकता है, इसका मतलब है कि आप कुछ गलत कर रहे हैं।

यदि आप अपने INSERT . में बाइंड वैरिएबल का उपयोग कर रहे हैं बयान, एक भटक एकल उद्धरण होने पर स्ट्रिंग से बचने की कोई आवश्यकता नहीं होगी। यदि आप बाइंड वेरिएबल्स का उपयोग नहीं कर रहे हैं तो स्ट्रिंग में एसक्यूएल इंजेक्शन हमलों की पहचान करने की कोशिश करने की कोई आवश्यकता नहीं होगी जो एक बड़ी सुरक्षा समस्या है। और आप Oracle को हर बार निष्पादित होने पर क्वेरी को पार्स करने के लिए बाध्य नहीं करेंगे जो सिस्टम के प्रदर्शन के लिए महत्वपूर्ण है।

यदि आप जिस प्रक्रिया के बारे में बात कर रहे हैं वह पीएल/एसक्यूएल में लिखी गई है, तो यह स्वचालित रूप से बाध्य चर का उपयोग करेगी। कॉलम नामों पर अनुमान लगाना और यह मानते हुए कि आप अपनी प्राथमिक कुंजी उत्पन्न करने के लिए अनुक्रम का उपयोग कर रहे हैं, आपके पास कुछ ऐसा होगा

CREATE PROCEDURE insert_rtf_clob( p_clob IN NOCOPY CLOB )
AS
BEGIN
  INSERT INTO rtf_clob( rtf_clob_id, rtf_clob_value )
    VALUES( seq_rtf_clob_id.nextval, p_clob );
END;

अन्य फ्रंट-एंड भाषाओं में बाइंड वेरिएबल्स का उपयोग करने के लिए अलग-अलग दृष्टिकोण होंगे। उदाहरण के लिए, यदि आप JDBC का उपयोग करके Java लिख रहे हैं, तो आप एक PreparedStatement बनाएंगे और फिर उपयुक्त setXXX . पर कॉल करें तरीके, यानी

PreparedStatement stmt = conn.prepareStatement( "INSERT INTO rtf_clob VALUES( ?, ? )" );
stmt.setInt( 1, 1 ); // Set column 1 to a value of 1
stmt.setString( 2, someStringVariable ); // Set column 2 to someStringVariable
stmt.executeUpdate();


  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 jdbc ड्राइवर नहीं ढूँढ सकता

  2. क्रिस्टल रिपोर्ट डेटाबेस से डेटा पुनर्प्राप्त करने में विफल रही

  3. स्प्रिंग बूट एक्चुएटर /स्वास्थ्य समापन बिंदु डेटाबेस या फ़ाइल सिस्टम जानकारी नहीं दिखाता है

  4. Search_condition के मान के बाद Oracle बाधा क्वेरी करें

  5. लूप के लिए ऑरैकल में गतिशील रूप से टेबल नाम पास करें