نحوه صدا زدن پروسیجر اوراکل در جاوا
سلام
دوستان من با این متد میخوام پروسیجری با نام ISC.IS_PRC_SMS_CHANGE_MAIN_V2 را صدا بزنم اما کار نمیکنه
public Object readFunction(String SCD_IN, long P_RANDOM_NO, long P_HCHR_CHR) {
Query query = em
.createNativeQuery("call ISC.IS_PRC_SMS_CHANGE_MAIN_V2 ( FLG_IN, SCD_IN, P_RANDOM_NO, P_HCHR_CHR, P_ERR_OUT, AST_OUT, P_JANBAZ, P_HAVE_NATIONALID )");
query.setParameter("FLG_IN2", 2);
query.setParameter("SCD_IN", SCD_IN);
query.setParameter("P_RANDOM_NO", P_RANDOM_NO);
query.setParameter("P_HCHR_CHR", P_HCHR_CHR);
return query.getSingleResult();
}
این ارور رو میده
node to traverse cannot be null!
این 4 تا پارامترهای ورودی هستن
FLG_IN, SCD_IN, P_RANDOM_NO, P_HCHR_CHR
و این 4 تا هم پارامتر خروجی که پروسیجر return میکنه
P_ERR_OUT, AST_OUT, P_JANBAZ, P_HAVE_NATIONALID
مشکل کجاست ؟
باتشکر از دوستان
نقل قول: نحوه صدا زدن پروسیجر اوراکل در جاوا
سلام، فکر کنم نحوه صدا زدن پروسیجرتون اشتباهه، اینارو حتما ببینید :
http://stackoverflow.com/a/3180797/3767784
http://en.wikibooks.org/wiki/Java_Pe...red_Procedures
در ضمن از این راه هم برای صدا زدن پروسیجر میتونید استفاده کنید :
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
CallableStatement statement = connection.prepareCall("{call ...}");
}
});
یعنی استفاده از CallableStatement.
این لینک ها رو هم ببینید :
http://www.mkyong.com/jdbc/jdbc-call...meter-example/
http://www.mkyong.com/jdbc/jdbc-call...meter-example/
http://www.mkyong.com/jdbc/jdbc-call...ursor-example/
http://www.javacodegeeks.com/2013/09...n-java-db.html
نقل قول: نحوه صدا زدن پروسیجر اوراکل در جاوا
سلام قربان شما هیچ اشتباهی در کدتون نیس جز این که در JDBC باید برای پارامترها علامت : رو می گذاشتین
کدت رو به این صورت تغییر بده درست میشه
public Object readFunction(String SCD_IN, long P_RANDOM_NO, long P_HCHR_CHR) {
Query query = em
.createNativeQuery("call ISC.IS_PRC_SMS_CHANGE_MAIN_V2 ( :FLG_IN, :SCD_IN, :P_RANDOM_NO, :P_HCHR_CHR, :P_ERR_OUT, :AST_OUT, :P_JANBAZ, :P_HAVE_NATIONALID )");
query.setParameter("FLG_IN2", 2);
query.setParameter("SCD_IN", SCD_IN);
query.setParameter("P_RANDOM_NO", P_RANDOM_NO);
query.setParameter("P_HCHR_CHR", P_HCHR_CHR);
return query.getSingleResult();
}