我正在尝试创建一个测试数据库(使用 H2 数据库)。我在生产中使用 Oracle,在 h2 中具有 oracle 兼容模式似乎很好。
但是,我在翻译 oracle 构造时遇到了问题:
create or replace PACKAGE permission_tools IS
FUNCTION get_role_access_level(
p_role_id IN NUMBER,
p_permiss IN VARCHAR2)
RETURN NUMBER;
END permission_tools;
我打电话给:
select permission_tools.get_access_level(?, ?) from dual;
转化为 H2 当量。我一直在尝试类似的东西:
创建模式权限_工具;
CREATE ALIAS PERMISSION_TOOLS.GET_ACCESS_LEVEL as $$
String nextPrime(String value) {
return new BigInteger(value).nextProbablePrime().toString();
}
$$;
但这给了我编译错误:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "
CREATE ALIAS PERMISSION_TOOLS.[*]GET_ACCESS_LEVEL AS
String nextPrime(String value) {
return new BigInteger(value).nextProbablePrime().toString();
}
"; expected "FOR"; SQL statement:
CREATE ALIAS PERMISSION_TOOLS.GET_ACCESS_LEVEL as $$
String nextPrime(String value) {
return new BigInteger(value).nextProbablePrime().toString();
}
$$ [42001-131]
这并没有给出任何关于这里发生的线索。
任何帮助表示赞赏。