首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用Procedural时获取无效的列索引

调用Procedural时获取无效的列索引
EN

Stack Overflow用户
提问于 2013-05-15 00:32:10
回答 1查看 1.6K关注 0票数 0

我有一个过程,它接受两个字符串参数,并从数据库Oracle10g返回Integer值。

当我试图打印出结果时,我得到了无效的列索引。

代码是

代码语言:javascript
复制
  try {


             Dbconnection NewConnect = new Dbconnection();
             Connection con = NewConnect.MakeConnect();

            CallableStatement stmt1 = ((Connection) con).prepareCall("{ call login (?, ?, ?)}");
            stmt1.registerOutParameter(1, Types.INTEGER);
            stmt1.setString(2, "ahmed");
            stmt1.setString(3, "ahmed");

             ResultSet rslt = stmt1.executeQuery();

             if (rslt.next())
             {

                 System.out.println( rslt.getInt(1)); 
             }

过程性登录

代码语言:javascript
复制
   create or replace 
    PROCEDURE login

        (p_username  teacher.username%TYPE,
                    p_password  teacher.password%TYPE)


    IS
           v_teacher_id   teacher.teacher_id%TYPE;
                      v_username    teacher.username%TYPE ;
           v_password     teacher.password%TYPE ;


    BEGIN
SELECT   teacher_id, username , password
INTO    v_teacher_id , v_username , v_password
FROM    teacher

 where username = p_username and password =p_password  ;

            DBMS_OUTPUT.PUT_LINE (v_teacher_id);



     end login ;
EN

回答 1

Stack Overflow用户

发布于 2015-07-24 15:49:42

不错的尝试,但这里存在一些错误...这样做..。你将100%确定地检索你的输出。

代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE login

(           v_teacher_id OUT teacher.teacher_id%TYPE,
                    p_username  IN teacher.username%TYPE,
                    p_password  IN teacher.password%TYPE)
    IS ..... (blah blah blah)

告诉我一件事,如果你在过程的开始没有提供任何输出参数,你怎么能期望Java代码的输出呢?

现在尝试一下,您将从java代码中获得输出

代码语言:javascript
复制
 rslt.getInt(1)

万事如意:)...苏拉吉特

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16548369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档