Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';“我得到了错误”;无效的列名";_Java_Oracle_Hibernate_Stored Procedures - Fatal编程技术网

Java I';“我得到了错误”;无效的列名";

Java I';“我得到了错误”;无效的列名";,java,oracle,hibernate,stored-procedures,Java,Oracle,Hibernate,Stored Procedures,我正在调用存储过程并打印我调用的存储过程,但它显示以下错误 package com.vijay; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import java.util.*; public cla

我正在调用存储过程并打印我调用的存储过程,但它显示以下错误

package com.vijay;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import java.util.*;

public class A {

    public static void main(String[] args){

        Configuration config = new Configuration();
        SessionFactory factory = config.configure().buildSessionFactory();
        System.out.println(">>>>>>>>1");
        Session session = factory.openSession();
        Transaction tx = session.beginTransaction();
        Query query = (Query)session.getNamedQuery("F_SP"); 
        System.out.println(">>>>>>>>2");
        List result = query.list();
        System.out.println(query.list());
        Iterator it=result.iterator();
        while(it.hasNext())
        {
            Object[] sublist1 = (Object[])it.next();
            System.out.println(">>>>>>>>3");
            String Trx = (String)sublist1[0];
            System.out.println(">>>>>>>>4");
            System.out.println(Trx);
        }
        System.out.println(">>>>>>>>5");
        System.out.println(result);
}
}

有谁能帮我解决这个问题。。。。。。如果您的存储过程对初学者来说是错误的,请发布正确的方法。应该是:

CREATE OR REPLACE PROCEDURE LYCAMONEY.Feeproc1(p_cursor  OUT  sys_refcursor)
as rebate_code1 varchar2(20);
begin

  rebate_code1 := null;
  open p_cursor for
    select REBATE_CODE into rebate_code1  from TRXN_FEE_TABLE;

 dbms_output.put_line(rebate_code1 );

end;
/
这是错误的,因为ref cursor是指向查询的指针。它实际上不获取任何数据


但我不认为这是给你的错误

谢谢你的回答:)我消除了错误,这是否意味着你的问题得到了回答?不,实际上这是一个愚蠢的错误。。。。。。我后来发现了。。。。。我还有一个问题,除了命名查询,是否还有其他方法调用过程。。。。。。如果会话对象是除了命名查询之外的唯一解决方案,那么就不需要hibernate了!!!!!我们只需创建一个简单的java类………@vijayakumar-将此作为新问题提问。问答网站不是一个论坛,所以重要的是这些帖子只解决了最初的问题,而不是其他问题。 Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.doList(Loader.java:2536) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) at org.hibernate.loader.Loader.list(Loader.java:2271) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157) at com.vijay.A.main(A.java:24) Caused by: java.sql.SQLException: Invalid column name at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:209) at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3325) at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1926) at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515) at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61) at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:254) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:250) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:230) at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:331) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:668) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606) at org.hibernate.loader.Loader.doQuery(Loader.java:829) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.doList(Loader.java:2533) ... 7 more
CREATE OR REPLACE PROCEDURE LYCAMONEY.Feeproc1(p_cursor  OUT  sys_refcursor)
as rebate_code1 varchar2(20);
begin

  rebate_code1 := null;
  open p_cursor for
    select REBATE_CODE into rebate_code1  from TRXN_FEE_TABLE;

 dbms_output.put_line(rebate_code1 );

end;
/
open p_cursor for
    select REBATE_CODE from TRXN_FEE_TABLE;