Apache Derby中的Semi Colon问题

时间:2015-04-27 19:13:30

标签: sql derby

我想要的是在我的嵌入式derby数据库中存储带有分号的java语句。但是,我无法生成可行的简单SQL插入语句。我相信当控件遇到字符串中的半冒号语句时,如果将其视为终止字符并且抛出错误。试试以下内容:

create table dummy(keys int, vals varchar(255));
insert into dummy values (10,'System.out.println();');

上述声明失败并出现错误。但是,如果我删除它的半冒号

insert into dummy values (10,'System.out.println()');

如果有的话,有没有人见过这个,你使用了哪个转义字符。

感谢。

2 个答案:

答案 0 :(得分:0)

查看您尝试执行sql语句的上下文(即周围的代码)可能会有所帮助。如果这是在java程序中,这样的东西可能会起作用:

int n = stmt.executeUpdate("insert into dummy values (10, 'System.out.println()$;') {ESCAPE '$'}");

答案 1 :(得分:0)

当我使用Derby" ij" sql编辑器:

ij version 10.12
ij> connect 'jdbc:derby:tt;create=true';
ij> create table dummy(keys int, vals varchar(255));
0 rows inserted/updated/deleted
ij> insert into dummy values (10,'System.out.println();');
1 row inserted/updated/deleted
ij> select * from dummy;
KEYS       |VALS

--------------------------------------------------------------------------------
------------------------------------------------------------
10         |System.out.println();


1 row selected

也许问题出在其他地方。如果您可以包含有关所获得的确切消息的更多详细信息,那可能会有所帮助。