Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 10 posts ] 
Author Message
 Post subject: calling stored procedure
PostPosted: Thu Jul 13, 2017 8:38 am 
Newbie

Joined: Thu Jul 13, 2017 8:30 am
Posts: 5
i am trying to execute stored procedure.

Code:
@Repository
public class PaymentDaoImpl implements PaymentDao {


    @Autowired
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction trans;

    SimpleDateFormat smd = new SimpleDateFormat("dd-MMM-yyyy");
    Date jdate = new Date();
    String s =smd.format( new java.sql.Date(jdate.getTime()));


    Date utilDate = new Date();
    java.sql.Date sdate = new java.sql.Date(utilDate.getTime());



    public void savePayments(PaymentParams paymentParams) {
        try {
            session = sessionFactory.openSession();
            trans = session.beginTransaction();
            System.out.println("date format");
            System.out.println(sdate);
            StoredProcedureQuery query = session.createStoredProcedureQuery(" PROC_INS_RMIS_BNK_VCHER_TABLE");
            query.registerStoredProcedureParameter("P_BUD_YEAR",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DISTRICT_CODE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_TRAN_NDATE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_TRAN_EDATE",Date.class, ParameterMode.IN); //date
            query.registerStoredProcedureParameter("P_BANK_CODE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DEPOSIT_BANK_CODE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_ECONOMIC_CODE5",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PO_CODE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_AMOUNT",Number.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PAN",Number.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PAYEE_NAME",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PAYEE_ADD",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PHONE_NO",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_TAX_YEAR",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PAYMENT_TYPE",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_CHEQUE_DRAFT_NO",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DATETIME",Date.class, ParameterMode.IN);           //date
            query.registerStoredProcedureParameter("P_CREATED_BY",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_TAX_FLAG",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_CLEARANCE_EDATE",Date.class, ParameterMode.IN);   //date
            query.registerStoredProcedureParameter("P_CLEARANCE_NDATE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_VOUCHER_NO",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_CHEQUE_TYPE",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_CHE_DRA_ISSUE_BANK",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_VOUCHER_STATUS",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_RECORD_LOCK_FLAG",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_VOUCHER_DATE",Date.class, ParameterMode.IN);          //date
            query.registerStoredProcedureParameter("P_ADJUST_FLAG",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_VOUCHER_NDATE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DEPOSIT_SLIP_NO",Number.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_COUNTER_CODE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_UPDATE_DATETIME",Date.class, ParameterMode.IN);   //date
            query.registerStoredProcedureParameter("P_UPDATE_BY",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_PO_AMDANI_FLAG",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DOLLAR_AMOUNT",Number.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_UPDATE_NDATE",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_DEPOSIT_SLIP_AUTO",char.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("P_TRAN_BUD_YEAR",String.class, ParameterMode.IN);
            query.registerStoredProcedureParameter("p_error_code",String.class, ParameterMode.IN);
                    query.setParameter("P_BUD_YEAR","2071/72");
                    query.setParameter("P_DISTRICT_CODE","42");
                    query.setParameter("P_TRAN_NDATE","2071/72");
                    query.setParameter("P_TRAN_EDATE",sdate);
                    query.setParameter("P_BANK_CODE","11009001");
                    query.setParameter("P_DEPOSIT_BANK_CODE","11009001");
                    query.setParameter("P_PO_CODE","28-204-02");
                    query.setParameter("P_ECONOMIC_CODE5","14224");
                    query.setParameter("P_AMOUNT",132);
                    query.setParameter("P_PAN",0);
                    query.setParameter("P_PAYEE_NAME","12345");
                    query.setParameter("P_PAYEE_ADD","Patan");
                    query.setParameter("P_PHONE_NO","553658");
                    query.setParameter("P_TAX_YEAR","2071/72");
                    query.setParameter("P_PAYMENT_TYPE",'A');
                    query.setParameter("P_CHEQUE_DRAFT_NO","NULL");
                    query.setParameter("P_DATETIME",sdate);
                    query.setParameter("P_CREATED_BY","psc");
                    query.setParameter("P_TAX_FLAG",'N');
                    query.setParameter("P_CLEARANCE_EDATE",sdate);
                    query.setParameter("P_CLEARANCE_NDATE","2071-04-01");
                    query.setParameter("P_VOUCHER_NO","v_voucher_no");
                    query.setParameter("P_CHEQUE_TYPE",'A');
                    query.setParameter("P_CHE_DRA_ISSUE_BANK","NULL");
                    query.setParameter("P_VOUCHER_STATUS",'T');
                    query.setParameter("P_RECORD_LOCK_FLAG",'Y');
                    query.setParameter("P_VOUCHER_DATE",sdate);
                    query.setParameter("P_ADJUST_FLAG",'N');
                    query.setParameter("P_VOUCHER_NDATE","2071-04-01");
                    query.setParameter("P_DEPOSIT_SLIP_NO",25764132);
                    query.setParameter("P_COUNTER_CODE","P3");
                    query.setParameter("P_UPDATE_DATETIME",sdate);
                    query.setParameter("P_UPDATE_BY","psc");
                    query.setParameter("P_PO_AMDANI_FLAG",'Y');
                    query.setParameter("P_DOLLAR_AMOUNT",0);
                    query.setParameter("P_UPDATE_NDATE","2073-04-03");
                    query.setParameter("P_DEPOSIT_SLIP_AUTO",'N');
                    query.setParameter("P_TRAN_BUD_YEAR","2073/74");
                    query.setParameter("p_error_code","v_error_code");
                    query.execute();
                    String error = (String) query.getOutputParameterValue("p_error_code");
            System.out.println(error);
            System.out.println("executed");

        }catch (Exception e){
            e.printStackTrace();
        }


    }
}

the error it throws :-
Code:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults
   at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
   at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
   at org.hibernate.procedure.internal.ProcedureCallImpl.execute(ProcedureCallImpl.java:653)
   at com.infodev.dao.PaymentDaoImpl.savePayments(PaymentDaoImpl.java:121)
   at com.infodev.services.PaymentServicesImpl.savePayment(PaymentServicesImpl.java:19)
   at com.infodev.controls.PaymentController.savePayment(PaymentController.java:44)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
   at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Thread.java:748)
Caused by: org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults
   at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
   at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
   at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
   at org.hibernate.result.internal.OutputsImpl.convert(OutputsImpl.java:78)
   at org.hibernate.result.internal.OutputsImpl.<init>(OutputsImpl.java:55)
   at org.hibernate.procedure.internal.ProcedureOutputsImpl.<init>(ProcedureOutputsImpl.java:32)
   at org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs(ProcedureCallImpl.java:453)
   at org.hibernate.procedure.internal.ProcedureCallImpl.getOutputs(ProcedureCallImpl.java:404)
   at org.hibernate.procedure.internal.ProcedureCallImpl.outputs(ProcedureCallImpl.java:663)
   at org.hibernate.procedure.internal.ProcedureCallImpl.execute(ProcedureCallImpl.java:646)
   ... 42 more
Caused by: java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:


1. am i calling stored procedure correctly?
2. am i passing the date parameter correctly?


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Sun Jul 16, 2017 12:13 pm 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1236
Quote:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:


Check out the column 7 and see what's wrong with that parameter.

For more info about how to call an Oracle stored procedure from Hibernate, check out this article.

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Sun Jul 16, 2017 11:14 pm 
Newbie

Joined: Thu Jul 13, 2017 8:30 am
Posts: 5
here's the situation. the oracle db which i am currently connected to excepts date value for e.g 10-JUL-17. i.e if i call procedure from sql developer by passing SYSDATE as parameter it inserts date as for eg. today (17-JUL-17)

now what i did was:-

1. i used Simpledateformat to generate the exact format of the current date. but now it will be converted into strings data type and throws casting error.

2. when i send date parameter as new Date() or sql date it would throw me the same error wrong number of types or arguments.


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Mon Jul 17, 2017 1:34 am 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1236
Try it like this:

Code:
query.setParameter( "P_TRAN_EDATE", sdate, TemporalType.DATE );

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 1:25 am 
Newbie

Joined: Thu Jul 13, 2017 8:30 am
Posts: 5
the above solution didn't work for me.

the exact procedure i am trying to call is :-
this proc inserts data and if insertion is successful it returns voucher number else error message. now i am neither able to fetch voucher number nor error message.
it will simply throw above given error.

Code:
create or replace PROCEDURE          PROC_INS_RMIS_BNK_VCHER_TABLE (
   P_BUD_YEAR                  VARCHAR2,
   P_DISTRICT_CODE             VARCHAR2,                            --NOT NULL
   P_TRAN_NDATE                VARCHAR2,                            --NOT NULL
   P_TRAN_EDATE                DATE,
   P_BANK_CODE                 VARCHAR2,                             --NOT NULL
   P_DEPOSIT_BANK_CODE         VARCHAR2,                            --NOT NULL
   P_PO_CODE                   VARCHAR2,                            --NOT NULL
   P_ECONOMIC_CODE5            VARCHAR2,                            --NOT NULL
   P_AMOUNT                    NUMBER,
   P_PAN                       NUMBER,
   P_PAYEE_NAME                NVARCHAR2,
   P_PAYEE_ADD                 NVARCHAR2,
   P_PHONE_NO                  VARCHAR2,
   P_TAX_YEAR                  VARCHAR2,                            --NOT NULL
   P_PAYMENT_TYPE              CHAR,                                --NOT NULL
   P_CHEQUE_DRAFT_NO           VARCHAR2,
   P_DATETIME                  DATE,
   P_CREATED_BY                VARCHAR2,                            --NOT NULL
   P_TAX_FLAG                  CHAR,                                --NOT NULL
   P_CLEARANCE_EDATE           DATE,
   P_CLEARANCE_NDATE           VARCHAR2,
   P_VOUCHER_NO            OUT VARCHAR2,
   
   P_CHEQUE_TYPE               CHAR,
   P_CHE_DRA_ISSUE_BANK        VARCHAR2,
   P_VOUCHER_STATUS            CHAR,                                --NOT NULL
   P_RECORD_LOCK_FLAG          CHAR,                                --NOT NULL
   P_VOUCHER_DATE              DATE,
   P_ADJUST_FLAG               CHAR,                                --NOT NULL
   P_VOUCHER_NDATE             CHAR,                                --NOT NULL
   P_DEPOSIT_SLIP_NO           NUMBER,
   P_COUNTER_CODE              VARCHAR2,                            --NOT NULL
   
   P_UPDATE_DATETIME           DATE,
   P_UPDATE_BY                 VARCHAR2,
   P_PO_AMDANI_FLAG            CHAR,
   P_DOLLAR_AMOUNT             NUMBER,
   
   P_UPDATE_NDATE              VARCHAR2,
   P_DEPOSIT_SLIP_AUTO         CHAR,
   P_TRAN_BUD_YEAR             VARCHAR2,
   p_error_code            OUT VARCHAR2                             --NOT NULL
                                       --not null
   )
IS
   v_date                DATE;
   v_check_date          DATE;
   v_count               NUMBER (1);
   v_ret                 PLS_INTEGER;
   v_same_day_check      CHAR (1);
   v_error_code          VARCHAR2 (2500):=null;
   v_SUB_DISTRICT_CODE   VARCHAR2 (250);
   v_MAIN_BANK_CODE      VARCHAR2 (250);
   v_bank_account_no_nep varchar2(250);
   v_sno number;
BEGIN
   SELECT SUBSTR (p_BANK_CODE, 1, 5) INTO v_MAIN_BANK_CODE FROM DUAL;

   P_VOUCHER_NO := NULL;

   v_date := TO_DATE (SYSDATE) - 1;
   
   begin
        SELECT count(voucher_no)
        INTO v_count
        FROM rmis7172.BANK_VOUCHER
       WHERE     main_bank_code = v_main_bank_code
       AND deposit_slip_no = p_deposit_slip_no;
           if v_count>=1 then 
              v_error_code:='Bank code and deposit slip no already exists';
           end if;
   end;
   
   v_count:=0;   
      BEGIN
                select bank_account_no_nep INTO v_bank_account_no_nep FROM RMIS7172.RMIS_V_BANK
                WHERE BANK_CODE=p_BANK_CODE;
                EXCEPTION
                    WHEN NO_DATA_FOUND THEN
                    v_bank_account_no_nep:='५२०१४००';
                    WHEN TOO_MANY_ROWS THEN
                    v_bank_account_no_nep:='५२०१४००';
                END ;
   
   
   
             
   


   FOR i IN 1 .. 30
   LOOP
      BEGIN
         SELECT holiday_date
           INTO v_check_date
           FROM S_HOLIDAY_PARAMETER
          WHERE v_date = TO_DATE (holiday_date);

         v_date := v_date - 1;
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            EXIT;
            NULL;
      END;
   END LOOP;


   ---------------------------------------------------------

   IF P_BANK_CODE IS NOT NULL THEN
      IF V_BANK_ACCOUNT_NO_NEP IS NOT NULL
      THEN
      BEGIN
         BEGIN
            SELECT COUNT (*)
              INTO v_count
              FROM rmis7172.RMIS_DAY_CLOSE
             WHERE     bank_code = P_BANK_CODE
                   AND bank_account_no_nep = v_BANK_ACCOUNT_NO_NEP
                   AND tran_edate = TO_DATE (v_date);
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               v_error_code := ':Data not found in day close table:';
         END;
      END;



      -- CHECK DAY CLOSE OF SAME DATE


      BEGIN
         SELECT 'X'
           INTO v_same_day_check
           FROM rmis7172.RMIS_DAY_CLOSE
          WHERE     bank_code = p_bank_code
                AND bank_account_no_nep = v_BANK_ACCOUNT_NO_NEP
                AND from_edate = p_tran_edate;

         v_error_code := ':Day Close has already done:';
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            NULL;
      END;
    END IF;
   ELSE
      v_error_code :=
         ':P_BANK_CODE is null or/and P_BANK_ACCOUNT_NO_NEP is null:';
   END IF;



   IF p_bank_code IS NULL
   THEN
      v_error_code := v_error_code || ':Bank is null:';

      NULL;
   END IF;

   
   IF P_deposit_slip_no IS NULL
   THEN
      v_error_code := v_error_code || ':Deposit slip No is null:';
   END IF;

   IF P_amount IS NULL
   THEN
      v_error_code := v_error_code || ':Amount is null:';
   END IF;

   IF P_economic_code5 IS NULL
   THEN
      v_error_code := v_error_code || ':Revenue Head is null:';
   END IF;

   IF P_po_code IS NULL
   THEN
      v_error_code := v_error_code || ':Paying Office is null:';
   END IF;

   IF P_PAYEE_NAME IS NULL
   THEN
      v_error_code := v_error_code || ':Payee  Name is null:';
   END IF;


   IF P_payment_type <> 'A'
   THEN
      IF p_cheque_type IS NULL
      THEN
         v_error_code := ':Cheque Type is null:';
      END IF;

      IF P_CHE_DRA_ISSUE_BANK IS NULL
      THEN
         v_error_code := ':Cheque / Draft Issue Bank is null:';
      END IF;

      IF P_CHEQUE_DRAFT_NO IS NULL
      THEN
         v_error_code := ':Cheque / Draft No is null:';
      END IF;
   END IF;

   IF v_error_code IS NULL
   THEN
      SELECT NVL (MAX (SNO), 0) + 1
        INTO v_SNO
        FROM RMIS7172.BANK_VOUCHER
       WHERE created_by = p_created_by;



      BEGIN
         SELECT sub_district_code
           INTO v_SUB_DISTRICT_CODE
           FROM RMIS7172.RMIS_V_BANK
          WHERE     bank_code = p_bank_code
                AND bank_account_no_nep = v_bank_account_no_nep;
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            v_SUB_DISTRICT_CODE:=04;
      END;

      INSERT INTO rmis7172.BANK_VOUCHER (BUD_YEAR,
                                          DISTRICT_CODE,
                                          SUB_DISTRICT_CODE,
                                          TRAN_NDATE,
                                          TRAN_EDATE,
                                          BANK_CODE,
                                          DEPOSIT_BANK_CODE,
                                          PO_CODE,
                                          ECONOMIC_CODE5,
                                          AMOUNT,
                                          BANK_ACCOUNT_NO_NEP,
                                          PAN,
                                          PAYEE_NAME,
                                          PAYEE_ADD,
                                          PHONE_NO,
                                          TAX_YEAR,
                                          PAYMENT_TYPE,
                                          CHEQUE_DRAFT_NO,
                                          DATETIME,
                                          CREATED_BY,
                                          TAX_FLAG,
                                          CLEARANCE_EDATE,
                                          CLEARANCE_NDATE,
                                          VOUCHER_NO,
                                                                                    CHEQUE_TYPE,
                                          CHE_DRA_ISSUE_BANK,
                                          VOUCHER_STATUS,
                                          RECORD_LOCK_FLAG,
                                          VOUCHER_DATE,
                                          ADJUST_FLAG,
                                          VOUCHER_NDATE,
                                          DEPOSIT_SLIp_NO,
                                          SNO,
                                          COUNTER_CODE,
                                         
                                          MAIN_BANK_CODE,
                                          UPDATE_DATETIME,
                                          UPDATE_BY,
                                          PO_AMDANI_FLAG,
                                          DOLLAR_AMOUNT,
                                         
                                          UPDATE_NDATE,
                                          DEPOSIT_SLIp_AUTO,
                                          TRAN_BUD_YEAR)
           VALUES (P_BUD_YEAR,
                   P_DISTRICT_CODE,
                   v_SUB_DISTRICT_CODE,
                   P_TRAN_NDATE,
                   P_TRAN_EDATE,
                   P_BANK_CODE,
                   P_DEPOSIT_BANK_CODE,
                   P_PO_CODE,
                   P_ECONOMIC_CODE5,
                   P_AMOUNT,
                   V_BANK_ACCOUNT_NO_NEP,
                   P_PAN,
                   P_PAYEE_NAME,
                   P_PAYEE_ADD,
                   P_PHONE_NO,
                   P_TAX_YEAR,
                   P_PAYMENT_TYPE,
                   P_CHEQUE_DRAFT_NO,
                   P_DATETIME,
                   P_CREATED_BY,
                   P_TAX_FLAG,
                   P_CLEARANCE_EDATE,
                   P_CLEARANCE_NDATE,
                   P_VOUCHER_NO,
                 
                   P_CHEQUE_TYPE,
                   P_CHE_DRA_ISSUE_BANK,
                   P_VOUCHER_STATUS,
                   P_RECORD_LOCK_FLAG,
                   P_VOUCHER_DATE,
                   P_ADJUST_FLAG,
                   P_VOUCHER_NDATE,
                   P_DEPOSIT_SLIP_NO,
                   v_SNO,
                   P_COUNTER_CODE,
                   
                   v_MAIN_BANK_CODE,
                   P_UPDATE_DATETIME,
                   P_UPDATE_BY,
                   P_PO_AMDANI_FLAG,
                   P_DOLLAR_AMOUNT,
                 
                   P_UPDATE_NDATE,
                   P_DEPOSIT_SLIP_AUTO,
                   P_TRAN_BUD_YEAR);

      COMMIT;

      SELECT voucher_no
        INTO P_VOUCHER_NO
        FROM rmis7172.BANK_VOUCHER
       WHERE     main_bank_code = v_main_bank_code
             AND deposit_slip_no = p_deposit_slip_no;
   ELSE
      p_error_code := v_error_code;
   END IF;
END;


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 1:38 am 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1236
Try using java.sql.Date instead of java.util.Date.

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 5:08 am 
Newbie

Joined: Thu Jul 13, 2017 8:30 am
Posts: 5
the sqldate i am passing above as a parameter is java.sql.date


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 6:59 am 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1236
Try to call it with JDBC and see if it works.

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 9:52 am 
Newbie

Joined: Thu Jul 13, 2017 8:30 am
Posts: 5
Code:
try {
            char myChar = 'A';
            System.out.println(String.valueOf(myChar));
            CallableStatement query = connection.prepareCall("{call PROC_INS_RMIS_BNK_VCHER_TABLE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            query.setString("P_BUD_YEAR","2071/72");
            query.setString("P_DISTRICT_CODE","42");
            query.setString("P_TRAN_NDATE","2071/72");
            query.setString("P_TRAN_EDATE",dateFormat.format(utilDate));
            query.setString("P_BANK_CODE","11009001");
            query.setString("P_DEPOSIT_BANK_CODE","11009001");
            query.setString("P_PO_CODE","28-204-02");
            query.setString("P_ECONOMIC_CODE5","14224");
            query.setInt("P_AMOUNT",132);
            query.setInt("P_PAN",0);
            query.setString("P_PAYEE_NAME","12345");
            query.setString("P_PAYEE_ADD","Patan");
            query.setString("P_PHONE_NO","553658");
            query.setString("P_TAX_YEAR","2071/72");
            query.setString("P_PAYMENT_TYPE", String.valueOf(myChar));
            query.setString("P_CHEQUE_DRAFT_NO","NULL");
            query.setString("P_DATETIME",dateFormat.format(utilDate));
            query.setString("P_CREATED_BY","psc");
            query.setString("P_TAX_FLAG",String.valueOf(myChar));
            query.setString("P_CLEARANCE_EDATE",dateFormat.format(utilDate));
            query.setString("P_CLEARANCE_NDATE","2071-04-01");
            query.setString("P_CHEQUE_TYPE",String.valueOf(myChar));
            query.setString("P_CHE_DRA_ISSUE_BANK","NULL");
            query.setString("P_VOUCHER_STATUS",String.valueOf(myChar));
            query.setString("P_RECORD_LOCK_FLAG",String.valueOf(myChar));
            query.setString("P_VOUCHER_DATE",dateFormat.format(utilDate));
            query.setString("P_ADJUST_FLAG",String.valueOf(myChar));
            query.setString("P_VOUCHER_NDATE","2071-04-01");
            query.setInt("P_DEPOSIT_SLIP_NO",25764132);
            query.setString("P_COUNTER_CODE","P3");
            query.setString("P_UPDATE_DATETIME",dateFormat.format(utilDate));
            query.setString("P_UPDATE_BY","psc");
            query.setString("P_PO_AMDANI_FLAG",String.valueOf(myChar));
            query.setInt("P_DOLLAR_AMOUNT",0);
            query.setString("P_UPDATE_NDATE","10-jul-17");
            query.setString("P_DEPOSIT_SLIP_AUTO",String.valueOf(myChar));
            query.setString("P_TRAN_BUD_YEAR","2073/74");
            query.execute();

        } catch (SQLException e) {
            e.printStackTrace();
        }


error:-
Code:
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PROC_INS_RMIS_BNK_VCHER_TABLE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
   at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
   at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:205)
   at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1043)
   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)
   at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
   at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3714)
   at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4755)
   at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1378)
   at com.infodev.controls.JdbcStoredProc.main(JdbcStoredProc.java:110)



Top
 Profile  
 
 Post subject: Re: calling stored procedure
PostPosted: Tue Jul 18, 2017 11:27 am 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1236
The problem is that you pass all parameters as String using "setString" instead of binding the actual types expected by the stored procedure.

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.