如何解决如何在自定义数据类型 (PostgreSQL) 上使用 CallableStatement (JDBC)?
我创建了一个特定的数据类型以在我的 Postgres 数据库函数中使用:
CREATE TYPE custom_object AS (status status,operation expiration_operation,expiry_date TIMESTAMP);
函数示例如下:
CREATE OR REPLACE FUNCTION function_to_call(
in_object custom_object[]
)
RETURNS VOID
LANGUAGE plpgsql
AS $$
BEGIN
RAISE NOTICE 'ARRAY RECEIVED';
END
$$;
从 Postgres,我可以将它用于“custom_object”类型的数组:
select function_to_call(array[('Active','Expire',Now() AT TIME ZONE 'UTC'),('Completed','Delete',Now() AT TIME ZONE 'UTC')]::custom_object[]);
然后,从 Java 开始,我将使用 Callablestatement。
final String[][] policy = {{"Active","Expire",new Date().toString()},{"Completed",new Date().toString()}};
final Connection conn = DatabaseConnectionProvider.getConnection(appConfig);
final CallableStatement stmt = conn.prepareCall("{call function_to_call(?)}");
Array arrayL;
arrayL = conn.createArrayOf("VARCHAR",labelArray.toArray());
stmt.setArray(1,policy);
有没有办法可以按照函数的预期直接将该数组的类型声明为“custom_object”,或者我应该作为常规 varchar 数组传递然后在过程中进行一些转换?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。