0

テーブルにない追加の変数を出力したいのですが、誰かがこれを行う方法を説明できますか、またはなぜそれが不可能なのですか?

すなわち -

    OPEN V_CURSOR FOR SELECT ee.EmployeeID, v_overtime_worked FROM  EMPLOYEE_RECORDS ee;
4

1 に答える 1

1

つまり、基本的には、そのカーソル、テーブルからのデータ、およびテーブルとは関係のない別の変数 v_overtime_worked に格納したいのですか?

どのようなエラーが表示されますか?

私が確かに知っていることは、これが機能していることです...基本的に、カーソルに別の変数を入れることができます:

declare
c_Curs SYS_REFCURSOR;
v_overtime_worked VARCHAR2(120) := '1000';
v_book_title VARCHAR2(255) := '';
v_xxx         VARCHAR2(120);

BEGIN

 OPEN c_Curs FOR SELECT book_title, v_overtime_worked FROM  books;

 LOOP

 FETCH c_Curs INTO v_book_title, v_xxx;
 EXIT WHEN c_Curs%NOTFOUND OR c_Curs IS NULL;

    DBMS_OUTPUT.PUT_LINE(v_book_title || v_xxx);

 end loop;
 close c_Curs;

END;

あなたのJavaの問題については、答えがわからないのではないかと心配しています..そして、調査を行う必要があります:)

多分あなたはこのようなものが必要です:

@Override
                public void execute(Connection con) throws SQLException {
                    CallableStatement call = con.prepareCall(ProcedureCalls.GET_ALL_BOOKS);
                    call.registerOutParameter(1, OracleTypes.CURSOR);
                    call.execute(); 
                    ResultSet rs = (ResultSet) call.getObject(1);
                    if(rs!=null){
                        while (rs.next ()) {
                            Book b = new Book();                                    
                            b.setBookId(rs.getLong("book_id"));
                            b.setBookTitle(rs.getString("title"));
                            b.setBookYear(rs.getInt("book_year"));
                            b.setBookAuthor(rs.getString("author"));
                            book_list.add(b);
                        }
                        if(rs!=null) rs.close();
                        if(call!= null) call.close();
                    }
                }
于 2013-04-04T11:57:31.173 に答える