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

ORA-01008:सभी चर बाध्य नहीं हैं, जब वे सभी बाध्य हैं

यह त्रुटि अक्सर ODP.NET के मामले में होती है। जब आपूर्ति किए गए पैरामीटर से मिलान करने वाले क्वेरी पैरामीटर की बात आती है तो समस्या OracleCommand के डिफ़ॉल्ट व्यवहार में होती है। डिफ़ॉल्ट रूप से स्थिति नाम . के बजाय विधि का उपयोग किया जाता है तरीका। व्यवहार में कमांड में जोड़े गए प्रत्येक पैरामीटर को नाम की परवाह किए बिना लिया जाएगा, और यदि आप क्वेरी टेक्स्ट में पैरामीटर को दो बार संदर्भित करते हैं तो आपको इसके लिए दो बार मान जोड़ना होगा!

इस डिफ़ॉल्ट व्यवहार को BindByName . सेट करके ओवरराइड किया जा सकता है करने के लिए true OracleCommad . पर लेकिन SqlDataSource . के मामले में आपके पास इसकी पहुंच नहीं है और आपको उचित क्रम में कई बार मान प्रदान करने की आवश्यकता है:

<asp:SqlDataSource ID="EDTDS" runat="server" ConnectionString="<%$ ConnectionStrings:Camstar %>" ProviderName="<%$ ConnectionStrings:Camstar.ProviderName %>" SelectCommand="select ..."
    <SelectParameters>
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate"  SessionField="endDate" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="startDate" SessionField="startDate" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="endDate"  SessionField="endDate" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="equipID" SessionField="equipID" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="venmod" SessionField="venmod" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="handType" SessionField="handType" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="handID" SessionField="handID" />
        <asp:SessionParameter ConvertEmptyStringToNull="False" Name="operID" SessionField="operID" />
    </SelectParameters>
</asp:SqlDataSource>

(मुझे आशा है कि मैंने कोई कमी नहीं छोड़ी है)

एक विकल्प के रूप में आप BindByName के साथ ODP.NET से व्युत्पन्न अपना स्वयं का प्रदाता बनाने पर विचार कर सकते हैं समायोजित।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केवल उन अभिलेखों को कैसे प्रारूपित करें जिनके लिए ORA-01843 फेंका नहीं गया है?

  2. MONTHS_BETWEEN () Oracle में फ़ंक्शन

  3. विजुअल स्टूडियो 2019 के लिए ओरेकल डेवलपर टूल्स को ठीक से स्थापित नहीं किया जा सकता है

  4. ORACLE SQL डुप्लिकेट को नहीं हटाने के लिए विशिष्ट का चयन करें

  5. EBS R12 के लिए DMZ कैसे बनाएं