我有一个字节数组,我试图填充到现有记录中。 我需要完成脚本的帮助。 我不确定如何在脚本中接受字节数组。
我尚未在数据库中编译脚本。只想确保脚本首先正确运行即可。
这是在oracle数据库中的记录,我试图将字节数组添加到表名称为account
的列中。这是将调用pl / sql脚本的方法。我不确定100%是否正确。
public void saveLogo(final int accountID, final byte[] data){
(new Call() {
protected void execute(Connection connection) throws SQLException {
CallableStatement statement = null;
Statement stmt = null;
try {
statement = connection.prepareCall("{ ? = call updateCompanyLogo(?,?) }");
statement.registerOutParameter(1, OracleTypes.INTEGER);
statement.setBytes(1, data);
statement.setInt(2,accountID);
statement.execute();
} finally {
stmt.close();
connection.close();
}
}
}).execute();
}
这是我尝试使用pl / sql脚本将字节数组填充到记录中的情况。
create or replace function updateCompanyLogo (
l_accountID in number,
byte array(BLOB))
is
begin
update account
set logo = byte
where id = l_accountID;
end;
/
如何在pl / sql中将该字节数组添加为参数并进行设置? 预先感谢,因为我被困住了
答案 0 :(得分:1)
假设LOGO列的类型为BLOB,PL / SQL脚本应类似于
create or replace function updateCompanyLogo (
l_accountID in number,
p_Array in BLOB)
as
begin
update account
set logo = p_Array
where id = l_accountID;
end;
/
随后的调用的Java逻辑应类似于:
stmt = connection.prepareCall("{CALL updateCompanyLogo(?,?)}");
stmt.setInt(1,accountID);
stmt.setBytes(2, accountID);
stmt.execute();