为什么我的别名不会出现在INFORMATION_SCHEMA.FUNCTION_ALIASES中?

时间:2015-03-09 13:08:54

标签: h2

我在测试环境中使用H2 DB v1.4.182。它可以替代Oracle,它是生产供应商。我在测试环境中使用脚本创建了一些别名:

CREATE ALIAS IF NOT EXISTS REGEXP_LIKE as $$ boolean regexpLike(String s, String p) { return java.util.regex.Pattern.compile(p).matcher(s).find(); } $$;

CREATE ALIAS IF NOT EXISTS TO_NUMBER as $$ long toNumber(String s) { return Long.valueOf(s); } $$;

CREATE ALIAS if NOT EXISTS fn_val_check3 for "fakedata.testutil.TestUtil.fn_val_check";

前两个别名显示在INFORMATION_SCHEMA.FUNCTION_ALIASES表中,最后一个(fn_val_check3)不显示。

SELECT ALIAS_NAME FROM INFORMATION_SCHEMA.FUNCTION_ALIASES;

给我两行

ALIAS_NAME  
TO_NUMBER
REGEXP_LIKE

我通过在控制台中直接运行CREATE ALIAS ...来验证H2有其他别名,它说

CREATE ALIAS fn_val_check3 for "fakedata.testutil.TestUtil.fn_val_check";
Function alias "FN_VAL_CHECK3" already exists; SQL statement: CREATE ALIAS fn_val_check3 for "fakedata.testutil.TestUtil.fn_val_check" [90076-182] 90076/90076 (Help)

我使用验证组件来验证数据库中是否存在该函数,这就是我想知道的原因。我错过了什么或者这是一个众所周知的东西吗?

0 个答案:

没有答案