目前,我调用存储过程并提供输入参数。存储过程具有以下代码,该代码调用存储过程并具有输入参数的(?)。
我通过以下方式提供输入参数:Callablestatement.setstring(“some_parameter_name”,“1234”)。问题是数据库没有识别参数名称,我得到一个空指针错误。但是,如果我使用索引号(例如1)来替换“some_parameter”名称,那么这将起作用。
理想情况下,我想知道它为什么不起作用,也许DBA没有给我正确的参数名称。在客户端有什么办法让我知道或弄清楚参数名称是什么?所以我可以根据名称而不是索引号提供输入参数?
由于
答案 0 :(得分:0)
您可以实用地获取元数据 DatabaseMetaData meta = conn.getMetaData();
ResultSet rs = meta.getProcedureColumns(" dbname"," owner"," ProcedureName","%");
而(rs.next(){
rs.getString(4); //将返回参数名称
}