Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Oracle,JDBI@SqlBatch-获取插入所涉及的所有行_Java_Sql_Database_Oracle_Jdbi - Fatal编程技术网

Java Oracle,JDBI@SqlBatch-获取插入所涉及的所有行

Java Oracle,JDBI@SqlBatch-获取插入所涉及的所有行,java,sql,database,oracle,jdbi,Java,Sql,Database,Oracle,Jdbi,我有一个Oracle 12c数据库。其中有一个名为Artifacts的表。该表如下所示: ID | BONETYPE | AGE INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(Artifacts, U_ARTIFACTS) */ INTO Artifacts ("BONETYPE", "AGE") VALUES ('dinosaur', '800000'); ID是一个始终作为标识生成的编号(12,0),因此数据库在插入工件时分配这些编号BONETYPE和AGE

我有一个Oracle 12c数据库。其中有一个名为Artifacts的表。该表如下所示:

ID | BONETYPE | AGE
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(Artifacts, U_ARTIFACTS) */
INTO Artifacts ("BONETYPE", "AGE")
VALUES ('dinosaur', '800000');
ID
是一个始终作为标识生成的
编号(12,0)
,因此数据库在插入工件时分配这些编号
BONETYPE
AGE
只是字符串。在
BONETYPE
AGE
上有一个独特的约束

我有一个数据库查询,用于插入丢失的记录,如下所示:

ID | BONETYPE | AGE
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(Artifacts, U_ARTIFACTS) */
INTO Artifacts ("BONETYPE", "AGE")
VALUES ('dinosaur', '800000');
奇怪的提示
忽略\u DUPKEY\u索引上的\u ROW\u是因为其中一些工件可能已经插入

此数据库查询实际上是通过JDBI查询发出的:

@SqlBatch("INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(Artifacts, U_ARTIFACTS) */\n" +
          "INTO Artifacts ( \"BONETYPE\", \"AGE\" )\n" +
          "VALUES ( :BoneType, :Age )")
@GetGeneratedKeys(columnName = "ID", value = OracleGeneratedKeyMapper.class)
int[] putArtifacts(@Bind("BoneType") List<String> boneTypes, @Bind("Age") List<String> ages);
@SqlBatch(“插入/*+忽略索引上的行(工件,工件)*/\n”+
“放入工件(\'BONETYPE\,\'AGE\”)\n”+
“值(:BoneType,:Age)”)
@GetGeneratedKeys(columnName=“ID”,value=OracleGeneratedKeyMapper.class)
int[]putArtifacts(@Bind(“BoneType”)列出BoneType,@Bind(“Age”)列出ages);
出于性能原因,它是一个
@SqlBatch

我现在的问题是,我想知道所有受影响行的
id
,包括那些由于
IGNORE\u ROW\u ON\u DUPKEY\u INDEX
提示而被忽略的行。我该怎么做


@GetGeneratedKeys
仅获取丢失记录行的
ID

简单的回答是,您不能这样做。您必须编写一个存储过程来获取所有的
id

简短的回答是您不能这样做。您必须编写一个存储过程来获取所有
id