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

iBatis का उपयोग करके आप Oracle 10g XE db में सरणियाँ कैसे लिखते हैं?

मैंने Mybatis3 के साथ किया है, पुराने iBatis सामान में समान होना चाहिए। JDBC सामग्री प्राप्त करने के लिए, पढ़ें यह धागा . यह एक बड़ा धागा है, लेकिन यह वहां है। "ArrayDescriptor" देखें।

असल में, आपको टाइपहैंडलर लिखना होगा। टाइपहैंडलर में, setArray को कॉल करें। Mybatis 3.x में कुछ इस तरह होना चाहिए। आप एक सूची के साथ काम कर रहे हैं, बस toArray विधि से कनवर्ट करें। यह एक उदाहरण है, जहां पैरामीटर एक स्ट्रिंग है []।

import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;   
.....
public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException
{
 //null check?

   ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY ", ps.getConnection());
   ARRAY oracleArray = new ARRAY(desc, ps.getConnection(), parameter);
   ps.setArray(i, oracleArray);
}

और शायद ibatis में ऐसा कुछ,

public void setParameter(ParameterSetter setter, Object parameter) throws SQLException
{
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY", setter.getPreparedStatement().getConnection());
    ARRAY oracleArray = new ARRAY(desc, setter.getPreparedStatement().getConnection(), parameter);
    setter.setArray(oracleArray);
}

अपना बनाएं कि आपने एक प्रकार बनाया है, जैसा कि उस धागे में लिखा है।

यानी

CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)

फिर SQL मैप में, टाइप हैंडलर को रेफर करना सुनिश्चित करें।




  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. Oracle 11g . के साथ Oracle डेवलपर VM

  3. SQL सर्वर / Oracle :निजी अस्थायी टेबल

  4. EM13c . में एजेंट डिमोशन

  5. क्या डेटाबेस संरचना में परिवर्तन के लिए कोई संस्करण नियंत्रण प्रणाली है?