jdbcTemplate not returning data from stored procedure

331 Views Asked by At

I am trying to call my Teradata stored procedure using simpleJDBCcall but I always get ZERO result though data is available in my table. I tried to debug but no luck. here is my stored procedure. is there any thing I am doing wrong here?

REPLACE PROCEDURE MYPROC
    (
        IN ID VARCHAR(50)
         
    )
    DYNAMIC RESULT SETS 1
    MAIN : BEGIN
        DECLARE ltype VARCHAR(256);
        
        DECLARE mainSql  VARCHAR (5000);
        DECLARE emptySql VARCHAR(5000);
        DECLARE mainCur CURSOR WITH RETURN ONLY FOR mainStmt;
        DECLARE emptyCur CURSOR WITH RETURN ONLY FOR emptyStmt;
        
    
    
        SET mainSql =   'LOCKING ROW FOR ACCESS SELECT * FROM MYTABLE where ID = ''' || ID || ''';'; 
        
        SET emptySQL = 'SELECT NULL AS ID;';
                            
   
        PREPARE mainStmt FROM mainSql;
        PREPARE emptyStmt FROM emptySql;    
        
        BEGIN TRANSACTION;
    
            SET statementNo = 100;
              OPEN mainCur;
    
        END TRANSACTION;
    END MAIN;

and here is my simpleJDBCCall

 simpleJdbcCall.withProcedureName("MYPROC").returningResultSet("mainCur",
                BeanPropertyRowMapper.newInstance(MYCLASS.class) ).declareParameters(new SqlParameter(ID, Types.VARCHAR) );
        SqlParameterSource namedParameters = new MapSqlParameterSource("ID", transId);

        try {
            Map<String, Object> out = simpleJdbcCall.execute(namedParameters);
            System.out.println(out);
        } catch (Exception e) {
            System.err.println(e);
        }
0

There are 0 best solutions below