OceanBase Connector/J 支持处理 PL 存储过程和匿名块,支持 PL 块语法和大多数 JDBC 转义语法。
以下 PL 调用可与 OceanBase Connector/J 一起使用:
// JDBC 转义语法CallableStatement ecs1 = conn.prepareCall( "{call proc (?,?)}" ) ; // 存储过程CallableStatement ecs2 = conn.prepareCall( "{? = call func (?,?)}" ) ; // 存储函数// PL 块语法CallableStatement ecs3 = conn.prepareCall( "begin proc (?,?); end;" ) ; // 存储过程CallableStatement ecs4 = conn.prepareCall( "begin ? := func(?,?); end;" ) ; // 存储函数
OceanBase Connector/J 中的函数调用方式如下所示:
OceanBaseDataSource obds = new OceanBaseDataSource();obds.setURL("jdbc:oceanbase:oracle://连接串:1521/用户名");obds.setUser("Adam");obds.setPassword("P@ssw0rd");Connection conn = obds.getConnection();CallableStatement cs = conn.prepareCall ("begin ? := f(?); end;");cs.registerOutParameter(1,Types.CHAR);cs.setString(3, "aaa");cs.executeUpdate();String result = cs.getString(1);
示例:PL 函数获取一个字符序列并为其添加后缀。
CREATE OR REPLACE FUNCTION f (v CHAR)RETURN CHAR ASBEGINRETURN v || 'suffix';END;
发表评论