içinde parametre ve parametre oluştururken ArrayIndexOutOfBoundsException'ı atar Bir java.sql.PreparedStatement nesnesinden ParameterMetaData'yı almaya çalışıyorum. PreparedStatement.getParameterMetaData(), sql-string
dokümantasyon şey veritabanında bir sorun olduğunda onun bir SQLException atma diyor iken
, Şu anda ArrayIndexOutOfBoundsException alıyorum. oracle.jdbc.driver.OracleDriver Bir ojdbc6.jar ve kullanımında bir 64 bit JDK 1.6.0.45 var:Bu JDBC sürücüsü URL'yi kullanıyorum.
PreparedStatement stmt = myOracleConn.prepareStatement(sql);
preparedStatements.add(stmt);
ParameterMetaData bla2 = stmt.getParameterMetaData(); //this Line throws the Exception
Ben bu yalnızca olur öğrendim, ben sql-String içinde bir yorum kullandığınızda:
aşağıdaki yapıyorum.
Yani benim SQL olduğunda:
1) (no comment ama parametresi)
"SELECT * FROM DUAL WHERE 1 = ?" --> no error occurs
2) (yorum ve parametre)
"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = ?" --> the indexoutofbounds exception occurs
3) (comment ama hayır parametresi)
"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = 1" --> no error occurs
I wonde r eğer buysa o ve ben bir şey eksik olup olmadığını ... birisi bu konuda bir şeyler biliyor mu ya da benim sqls içinde yorumların kullanmamalısınız?
edit1: kullanma --comments yerine aynı davranış/**/sonuçlanır. edit2: ben istisna alır
\n\t\t\t\t--great
yer verdi büyük bir SQL var, hiç değil gibi görünüyor. Örnek sqls hala postet on dahil olmak üzere,
Bazı bilgiler eksik, sadece istek için çalışacaktır. Şimdiden teşekkürler. Sadece Oracle JDBC sürücüsü bir hata buldum gibi Sen() .getParameterMetaData yürütmeden önce açıklamaya parametrelerini ayarlamak gerekir konum
görünüyor. Öte yandan, JBDC sürücülerinin sorgu içinde Java yorumları almaya hazır olduğunu sanmıyorum ... – ericbn
Standart SQL bu tür yorumları desteklemiyor. Genellikle sadece --' 'ile başlayan tek satırlık yorum destekler (ve sonra, tabii ki, satırın başına koydu olamaz). Ama neden onları çalıştıran programdan ziyade SQL dizelerine yorum yaparsınız? – RealSkeptic
ve ipuçları kullanımını aboute ne olacak? yorumlar olarak da kodlanırlar, düzenleme: sql içeriklerini extern'ten girildiği için sql'de yorumlar kullanıyorum, yorumlar sql rutinlerini değil sql rutinlerini açıklıyor – Kaspatoo