【发布时间】:2011-06-16 23:56:36
【问题描述】:
(1) 尝试使用行尾继续标记创建内联存储过程。以下是用户手册中的 NEXT_PRIME 示例,其中添加了行尾连续标记:
DROP ALIAS IF EXISTS NEXT_PRIME;
CREATE ALIAS NEXT_PRIME AS $$ \
String nextPrime(String value) { \
return new BigInteger(value).nextProbablePrime().toString(); \
} \
$$;
(2) 观察错误:
SQL 语句中的语法错误“/org/h2/dynamic/NEXT_PRIME.java:7: 非法字符: \92 公共静态\ ^ ...等
我问这个问题是有充分理由的。如果在“$$”块中正确支持行继续,则可以在普通的 java 字符串属性资源文件中使用普通的多行 SQL 语句来保留/维护多行存储过程。是的,我在这里写的内容意味着 H2 中的普通 SQL 语句允许行继续。例如:
//stringid=\
create table if not exists test(\
id int,\
name varchar,\
);
上面的包含字符串id“//stringid”的SQL create语句可以从java属性文件列表中直接剪切粘贴到H2控制台,执行不会出错!
【问题讨论】: