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

BLOB कॉलम को कैसे अपडेट करें, त्रुटि ORA-00932, जबकि इंसर्ट काम करता है

मैं वास्तव में हालांकि आप चीजों की कल्पना कर रहे थे जब मैंने आपकी पोस्ट पढ़ी। उत्सुकतावश, मैंने इसे आजमाया और चकित रह गया कि यह त्रुटि वास्तव में होती है।

अच्छी खबर है। मैंने इधर-उधर देखा और पाया:

ओडीपी (Oracle.DataAccess) के साथ>> तैयार क्वेरी <<का उपयोग करके मैं CLOB फ़ील्ड में डेटा कैसे अपडेट कर सकता हूं?

यह पता चला है कि एलओबी के साथ अपडेट स्टेटमेंट का उपयोग करते समय, एलओबी को पहले पैरामीटर में घोषित किया जाना चाहिए। इसे ध्यान में रखते हुए, मुझे वही त्रुटि मिली जो आपने अपने कोड के साथ की थी, लेकिन इसने पूरी तरह से काम किया:

public static bool StoreBlobImage(OracleConnection conn, string ArtNr, byte[] bImageJpg)
{
    bool Ok = false;
    string Sql = "update MyTable set Image = :Image where ArtNr = :ArtNr";

    using (OracleCommand cmd = new OracleCommand(Sql, conn))
    {
        cmd.Parameters.Add("Image", OracleDbType.Blob).Value = bImageJpg;
        cmd.Parameters.Add("ArtNr", OracleDbType.Varchar2, 8).Value = ArtNr;

        try
        {
            cmd.ExecuteNonQuery();
        }
        catch (Exception TheException)
        {
        }
    }
    return Ok;
}

बस पैरामीटर स्विच करके।

मैंने उस मूल प्रश्न (इस मामले में वही लड़का) के प्रश्न और उत्तर के लिए प्रशंसा दी।

आप सही कह रहे हैं, Oracle में BLOB पर अपडेट के लिए मदद के लिए वेब पर बहुत कम कीमती है।

बढ़िया सवाल। मुझे लगता है कि मैंने आज कुछ सीखा।

-- संपादित करें --

ओपी के सुझाव के अनुसार, ऊपर संदर्भित एक ही धागे के अनुसार, एक और फिक्स है, जो मापदंडों को पुनर्व्यवस्थित करने की आवश्यकता को रोक सकता है। मेरा अनुमान है कि यदि आप एक से अधिक LOB अपडेट कर रहे हैं तो यह भी काम आ सकता है।

BindByName स्विच करना ऐसा प्रतीत होता है कि संपत्ति भी समस्या का समाधान करती है:

cmd.BindByName = true;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # कॉल ऑरैकल संग्रहीत कार्य

  2. क्या एक इन्सर्ट ऑपरेशन एक और डीडीएल ऑपरेशन प्रतीक्षा कर सकता है?

  3. tnsname.ora के बिना Oracle से कनेक्ट करें

  4. Oracle SQL में MERGE करते समय, मैं उन पंक्तियों को कैसे अपडेट कर सकता हूँ जो SOURCE में मेल नहीं खाती हैं?

  5. java.sql.SQLException:ORA-06550:जावा कोड से कॉल करने की प्रक्रिया के बाद