我一直在尝试运行一些单元测试,这些测试使用to_char函数,该函数适用于我们的oracle数据库,但对于我们的h2内存数据库,用于测试的函数似乎不起作用。我尝试将别名删除到_char并覆盖它以使其生效,但当我尝试将别名删除到_char并创建它时,它似乎不起作用。
DROP alias if exists TO_CHAR;
CREATE alias TO_CHAR FOR "package.TEST.toChar";
结果:"org.h2.jdbc.JdbcSQLException:函数别名"TO_CHAR"已经存在;SQL语句:"
DROP alias TO_CHAR;
CREATE alias TO_CHAR FOR "package.TEST.toChar";
结果:"org.h2.jdbc.JdbcSQLException:函数别名"TO_CHAR"未找到;SQL语句:"。
还尝试了如下直接sql脚本,但不起作用:
DROP alias if exists TO_CHAR;
CREATE alias TO_CHAR as '
public static String toChar(String date, String pattern) throws Exception {
pattern = pattern.replaceAll("YY","yy");
pattern = pattern.replaceAll("DD","dd");
pattern = pattern.replaceAll("HH24|hh24","HH");
pattern = pattern.replaceAll("HH?!24|hh?!24","KK");
pattern = pattern.replaceAll("MON|mon","MMM");
pattern = pattern.replaceAll("MI|mi","mm");
pattern = pattern.replaceAll("SS|ss","ss");
pattern = pattern.replaceAll("AM|PM","aa");
pattern = pattern.replaceAll("T","");
SimpleDateFormat sm = new SimpleDateFormat(pattern);
java.util.Date dt;
if(date.length() > 10)dt = java.sql.Timestamp.valueOf(date);
else
dt = java.sql.Date.valueOf(date);
return sm.format(dt);
}';
我认为这可能是缺乏权限,但它不适用于user="sa",也查了一下,他们可能不允许覆盖to_char功能,因为有人说他们不允许覆盖某些功能:http://h2-database.66688.n3.nabble.com/trunc-alias-is-read-only-and-avoids-emulating-Oracle-trunc-function-td4025947.html
有人知道我在这里遗漏了什么吗?或者不可能重写它吗?
如果您真的想用自己的实现重新定义该函数,则需要添加;内置ALIAS\u OVERRIDE=1。
为了在我们的JUnit测试中使用H2数据库而不是调用Oracle,我被阻止在H2上创建别名以模拟一些Oracle兼容性: > 我首先为日期到字符的转换声明了to_char的别名:可以
正如标题所示,我无法使用delete()选项。我在网上发了很多帖子,但都找不到正确的答案。我正在Homestead上使用Laravel5.5(一周前安装,最新版本左右)。 让我给你一些代码,我真的希望有人能帮助我。 这让我头痛,奥氮平快用完了。请告诉我我做错了什么,如果遗漏了什么,请告诉我! 这是我的控制器: 这是我的索引页(索引与后端的管理索引相同: 然后是路线: 然后政策: 最后是中间件: 在
我试图用嵌入式数据库(H2)创建一个Spring Boot应用程序,并在应用程序启动时用liquibase创建数据,但绝对没有工作。 当我转到http://localhost:8080/h2-console/并尝试登录到jdbc:h2:mem:testdb时,我得到了 下面是我的资源/application.properties:
创建Queue 方法参数CreateQueueRequest queueName : String : required 新建的Queue的名称 应只包括字母(大小写敏感)与数字,如testQueue1 queueAttribute : QueueAttribute : optional 新建的Queue的属性,其中包含可选的用户自定义属性,具体如下: delaySeconds : int : o
连接MySQL操作 mysql -h 主机地址 -u 用户名 -p 用户密码 注:-u与root可以不用加空格,其它参数也一样。 DEMO 打开电脑CMD,输入 mysql -h 127.0.0.1 -u root -p 回车,然后输入密码。就可以连接到本地的MySQL数据库。 创建MySQL用户 CREATE USER 'username'@'host' IDENTIFIED BY 'passw
问题内容: 我有一个存储过程,该过程将通过复制旧表的结构来创建新表。但是在创建新表之前,我需要检查该表是否存在,如果存在,则需要先删除该表。这是我的存储过程。 但是,如果该表存在,我总是会收到类似以下的错误。哪里错了? 问题答案: 让我感到难过…在这种情况下,“如果存在”似乎无法与exec配合使用。更新了以下脚本: