0
点赞
收藏
分享

微信扫一扫

OAF:章节5-调用PLSQL函数和存储过程

爱情锦囊 2023-07-25 阅读 14

甚至当写实体对象代码的时候,你可能需要调用plsql函数和过程。 注意:不要使用JDBC执行简单的sql语句。总是利用视图对象实现这样的目的。如何可以,声明性的定义这些视图对象。 通常,都是在实体对象或者AM中调用存储过程,你需要:

  • 使用PLSQL块创建JDBC调用语句;
  • 绑定变量;
  • 执行语句;
  • 选择性获取的任何过程输出值;
  • 关闭语句; 下面的列子展示了AM模块如何在实体对象中创建调用语句;
import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types; 
...
OADBTransaction txn = getDBTransaction();
CallableStatement cs = txn.createCallableStatement("begin dbms_application_info.set_module(:1, :2); end;"); 
try 
{ 
 cs.setString(1, module); 
 cs.setString(2, action); 
 cs.execute(); 
 cs.close();
} 
catch (SQLException sqle) 
{ 
 try { cs.close } catch (Exception(e) {}
 throw OAException.wrapperException(sqle);
}

下面的例子描述输出值:

import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
import oracle.jdbc.driver.OracleCallableStatement;
...
DBTransaction txn = getDBTransaction();
String sql = "BEGIN :1 := FND_MESSAGE.GET; END;";
CallableStatement cs = txn.createCallableStatement(sql, 1);
String messageBuffer = "";
 
try
{
 ((OracleCallableStatement)cs.registerOutParameter(1, Types.VARCHAR, 0, 2000);
 cs.execute();
 messageBuffer = cs.getString(1);
 cs.close();
}
catch (SQLException sqle)
{
 try { cs.close } catch (Exception(e) {}
 throw OAException.wrapperException(sqle);
}

举报

相关推荐

0 条评论