在Oracle中,我可以使用以下内容:
String query = "{ ? = call get_config_func( ?, ? ) }";
try
{
CallableStatement cs = con.prepareCall( query );
cs.registerOutParameter(1, OracleTypes.CURSOR);
cs.setInt( 2, i );
cs.registerOutParameter(3, java.sql.types.INTEGER);
cs.execute();
ResultSet results = ((OracleCallableStatement)cs).getCursor (1);
String val = cs.getString(3);
if( results != null)
{
while( results.next() )
{
.....
但是我坚持使用不能与SQL Server一起使用的Oracle引用。
我尝试了以下内容:
String query = "{ call uspGetLastLocation( ?, ? }";
try
{
cs = con.prepareCall( query );
cs.setLong(1, id );
cs.registerOutParameter(2, java.sql.Types.VARCHAR );
rs = cs.executeQuery();
while(rs.next())
{
.....
但是我收到以下错误
'{'。
附近的语法不正确
我见过使用PreparedStatement
代替CallableStatement
的示例,并将查询更改为
String query = "EXEC uspGetLastLocation ?, ?";
但我无法弄清楚如何处理Output参数。
任何建议或指向参考的指针?
感谢。
答案 0 :(得分:3)
看起来你错过了代码中的一个括号。 试试这个
String query = "{ call uspGetLastLocation( ?, ? )}";