File tree Expand file tree Collapse file tree 3 files changed +19
-3
lines changed
java/net/sf/jsqlparser/statement/merge
jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement/merge Expand file tree Collapse file tree 3 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -53,7 +53,8 @@ public void setValues(List<Expression> values) {
53
53
54
54
@ Override
55
55
public String toString () {
56
- return " WHEN NOT MATCHED THEN INSERT " + PlainSelect .getStringList (columns , true , true )
56
+ return " WHEN NOT MATCHED THEN INSERT "
57
+ + (columns .isEmpty () ? "" : PlainSelect .getStringList (columns , true , true ))
57
58
+ " VALUES " + PlainSelect .getStringList (values , true , true );
58
59
}
59
60
}
Original file line number Diff line number Diff line change @@ -945,7 +945,7 @@ MergeInsert MergeInsertClause() : {
945
945
}
946
946
{
947
947
<K_WHEN> <K_NOT> <K_MATCHED> <K_THEN>
948
- <K_INSERT> "(" col=Column() { columns.add(col); } ("," col=Column() { columns.add(col); } )* ")" <K_VALUES>
948
+ <K_INSERT> [ "(" col=Column() { columns.add(col); } ("," col=Column() { columns.add(col); } )* ")"] <K_VALUES>
949
949
"(" exp=SimpleExpression() { expList.add(exp); } ("," exp=SimpleExpression() { expList.add(exp); } )* ")"
950
950
{
951
951
mi.setColumns(columns);
Original file line number Diff line number Diff line change 21
21
import net .sf .jsqlparser .JSQLParserException ;
22
22
import net .sf .jsqlparser .parser .CCJSqlParserUtil ;
23
23
import net .sf .jsqlparser .statement .Statement ;
24
- import org .junit .Test ;
25
24
import static net .sf .jsqlparser .test .TestUtils .*;
26
25
import static org .junit .Assert .fail ;
26
+ import org .junit .Test ;
27
27
28
28
/**
29
29
*
@@ -64,6 +64,21 @@ public void testMergeIssue232() throws JSQLParserException {
64
64
assertSqlCanBeParsedAndDeparsed (sql , true );
65
65
}
66
66
67
+ @ Test
68
+ public void testMergeIssue676 () throws JSQLParserException {
69
+ String sql = "merge INTO M_KC21 USING\n "
70
+ + "(SELECT AAA, BBB FROM I_KC21 WHERE I_KC21.aaa = 'li_kun'\n "
71
+ + ") TEMP ON (TEMP.AAA = M_KC21.AAA)\n "
72
+ + "WHEN MATCHED THEN\n "
73
+ + "UPDATE SET M_KC21.BBB = 6 WHERE enterprise_id IN (0, 1)\n "
74
+ + "WHEN NOT MATCHED THEN\n "
75
+ + "INSERT VALUES\n "
76
+ + "(TEMP.AAA,TEMP.BBB\n "
77
+ + ")" ;
78
+
79
+ assertSqlCanBeParsedAndDeparsed (sql , true );
80
+ }
81
+
67
82
@ Test
68
83
public void testComplexOracleMergeIntoStatement () throws JSQLParserException {
69
84
String sql = "MERGE INTO DestinationValue Dest USING\n "
You can’t perform that action at this time.
0 commit comments