【问题标题】:call sqlserver function in netbeans在netbeans中调用sqlserver函数
【发布时间】:2012-05-26 05:48:44
【问题描述】:

我需要帮助才能在 netbeans 中调用 sqlserver 函数。 首先,对不起,我的英语太差了,而且是个新手..

我在 netbeans 中使用了这段代码:

public void generateNoOrder()
{
    ResultSet rset = null;
    con = conf.makeConnection();
    //String result="";
    try{
        CallableStatement cs = con.prepareCall("{call get_date()}");
        cs.registerOutParameter(1, java.sql.Types.CHAR);
        rset = cs.executeQuery();
        //while(rset.next())
        //{
         String result = cs.getString(1);
        //}
        System.out.println(result);
    }
    catch (Exception ex){
        System.out.println(ex.getMessage());
        //return null;
    }
    finally {
        conf.closeConnection(con, s, rset);
    }
}

该函数不需要输入参数,该函数返回类型为char[12]

错误信息是: 参数索引 1 无效。

请帮帮我,谢谢!

【问题讨论】:

    标签: java sql-server function call


    【解决方案1】:

    如果不需要输入参数并且它是您调用的函数,请尝试不使用 ()

    CallableStatement cs = con.prepareCall("{call get_date}")
    

    http://www.java2s.com/Code/JavaAPI/java.sql/ConnectionprepareCallStringsql.htm所见

    因为您正在尝试检索输出参数,所以您也应该需要注册输出参数,就像这样

    // Call a function with no parameters; the function returns a VARCHAR
    // Prepare the callable statement
    cs = connection.prepareCall("{? = call get_date}");
    
    // Register the type of the return value
    cs.registerOutParameter(1, java.sql.Types.CHAR);
    
    // Execute and retrieve the returned value
    cs.execute();
    String result = cs.getString(1);
    

    它在调用 MySQL 函数时对我有用,它应该适用于 SQL Server IMAO。

    【讨论】:

    • 那么......它是否适用于上面的代码或者您是否使用了其他解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2011-06-09
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多