This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 4983e949b8c Fix oracle create view attribute parse rule (#29057)
4983e949b8c is described below

commit 4983e949b8c60497fbbbeda50a40e79d1d76be57
Author: niu niu <[email protected]>
AuthorDate: Fri Nov 17 08:22:20 2023 +0800

    Fix oracle create view attribute parse rule (#29057)
    
    * Fix attribute rule
    
    * Add sql parse test
---
 .../src/main/antlr4/imports/oracle/BaseRule.g4     |   4 +
 .../src/main/antlr4/imports/oracle/DDLStatement.g4 |  13 +-
 .../src/main/resources/case/ddl/create-view.xml    | 176 ++++++++++++++++++++-
 .../parser/src/main/resources/case/dml/insert.xml  | 146 ++++++++++++++++-
 .../resources/sql/supported/ddl/create-view.xml    |   7 +-
 .../main/resources/sql/supported/dml/insert.xml    |   8 +-
 6 files changed, 340 insertions(+), 14 deletions(-)

diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index d18cb9e3b86..a52a18f899b 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -912,6 +912,10 @@ orderByItem
     : (columnName | numberLiterals | expr) (ASC | DESC)? (NULLS FIRST | NULLS 
LAST)?
     ;
 
+attribute
+    : (owner DOT_)? identifier
+    ;
+
 attributeName
     : oracleId
     ;
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
index 1d1ca80e835..c9cddf286cd 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
@@ -2752,7 +2752,8 @@ dropFlashbackArchive
     ;
 
 createDiskgroup
-    : CREATE DISKGROUP diskgroupName ((HIGH | NORMAL | FLEX | EXTENDED (SITE 
siteName)? | EXTERNAL) REDUNDANCY)? diskClause+ attribute?
+    : CREATE DISKGROUP diskgroupName ((HIGH | NORMAL | FLEX | EXTENDED (SITE 
siteName)? | EXTERNAL) REDUNDANCY)? diskClause+
+    ( ATTRIBUTE attributeName EQ_ attributeValue (COMMA_ attributeName EQ_ 
attributeValue)*)?
     ;
 
 diskClause
@@ -2763,14 +2764,6 @@ qualifieDiskClause
     : searchString (NAME diskName)? (SIZE sizeClause)? (FORCE | NOFORCE)?
     ;
 
-attribute
-    : ATTRIBUTE attributeNameAndValue (COMMA_ attributeNameAndValue)*
-    ;
-
-attributeNameAndValue
-    : attributeName EQ_ attributeValue
-    ;
-
 dropDiskgroup
     : DROP DISKGROUP diskgroupName contentsClause?
     ;
@@ -3260,7 +3253,7 @@ modifyVolumeClause
     ;
 
 diskgroupAttributes
-    : SET ATTRIBUTE attributeNameAndValue
+    : SET ATTRIBUTE attributeName EQ_ attributeValue
     ;
 
 modifyDiskgroupFile
diff --git a/test/it/parser/src/main/resources/case/ddl/create-view.xml 
b/test/it/parser/src/main/resources/case/ddl/create-view.xml
index 225a9a30e3c..b02db9f8945 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-view.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-view.xml
@@ -243,7 +243,7 @@
         </select>
     </create-view>
     
-    <create-view sql-case-id="create_view_as_simple_select" 
view-definition="SELECT * FROM laurel.emp">
+    <create-view sql-case-id="create_view_as_simple_select1" 
view-definition="SELECT * FROM laurel.emp">
         <view name="employee" start-index="12" stop-index="26">
             <owner name="laurel" start-index="12" stop-index="17" />
         </view>
@@ -259,6 +259,20 @@
         </select>
     </create-view>
     
+    <create-view sql-case-id="create_view_as_simple_select2" 
view-definition="SELECT * FROM scott.dept">
+        <view name="dept" start-index="12" stop-index="15" />
+        <select>
+            <projections start-index="27" stop-index="27">
+                <shorthand-projection start-index="27" stop-index="27" />
+            </projections>
+            <from>
+                <simple-table name="dept" start-index="34" stop-index="43">
+                    <owner name="scott" start-index="34" stop-index="38" />
+                </simple-table>
+            </from>
+        </select>
+    </create-view>
+    
     <create-view sql-case-id="create_view_as_where_where" 
view-definition="SELECT employee_id, last_name, department_id FROM employees, 
departments WHERE employees.department_id = departments.department_id">
         <view name="employees_departments" start-index="12" stop-index="32" />
         <select>
@@ -410,4 +424,164 @@
             </combine>
         </select>
     </create-view>
+    
+    <create-view sql-case-id="create_view_with_object_identifier1" 
view-definition="SELECT e.empnum, e.ename, e.salary, e.job FROM emp_table e 
WHERE job = 'Developer'">
+        <view name="emp_view1" start-index="12" stop-index="20" />
+        <select>
+            <projections start-index="77" stop-index="110">
+                <column-projection name="empnum" start-index="77" 
stop-index="84">
+                    <owner name="e" start-index="77" stop-index="77" />
+                </column-projection>
+                <column-projection name="ename" start-index="87" 
stop-index="93">
+                    <owner name="e" start-index="87" stop-index="87" />
+                </column-projection>
+                <column-projection name="salary" start-index="96" 
stop-index="103">
+                    <owner name="e" start-index="96" stop-index="96" />
+                </column-projection>
+                <column-projection name="job" start-index="106" 
stop-index="110">
+                    <owner name="e" start-index="106" stop-index="106" />
+                </column-projection>
+            </projections>
+            <from>
+                <simple-table alias="e" name="emp_table" start-index="117" 
stop-index="127" />
+            </from>
+            <where start-index="129" stop-index="151">
+                <expr>
+                    <binary-operation-expression start-index="135" 
stop-index="151">
+                        <left>
+                            <column name="job" start-index="135" 
stop-index="137" />
+                        </left>
+                        <right>
+                            <literal-expression value="Developer" 
start-index="141" stop-index="151" />
+                        </right>
+                        <operator>=</operator>
+                    </binary-operation-expression>
+                </expr>
+            </where>
+        </select>
+    </create-view>
+    
+    <create-view sql-case-id="create_view_with_object_identifier2" 
view-definition="SELECT d.deptno, d.deptname, 
address_t(d.deptstreet,d.deptcity,d.deptstate,d.deptzip) AS deptaddr FROM dept 
d">
+        <view name="dept_view" start-index="12" stop-index="20" />
+        <select>
+            <projections start-index="74" stop-index="163">
+                <column-projection name="deptno" start-index="74" 
stop-index="81">
+                    <owner name="d" start-index="74" stop-index="74" />
+                </column-projection>
+                <column-projection name="deptname" start-index="84" 
stop-index="93">
+                    <owner name="d" start-index="84" stop-index="84" />
+                </column-projection>
+                <expression-projection alias="deptaddr" 
text="address_t(d.deptstreet,d.deptcity,d.deptstate,d.deptzip)" 
start-index="96" stop-index="163">
+                    <expr>
+                        <function function-name="address_t" 
text="address_t(d.deptstreet,d.deptcity,d.deptstate,d.deptzip)" 
start-index="96" stop-index="151">
+                            <parameter>
+                                <column name="deptstreet" start-index="106" 
stop-index="117">
+                                    <owner name="d" start-index="106" 
stop-index="106" />
+                                </column>
+                            </parameter>
+                            <parameter>
+                                <column name="deptcity" start-index="119" 
stop-index="128">
+                                    <owner name="d" start-index="119" 
stop-index="119" />
+                                </column>
+                            </parameter>
+                            <parameter>
+                                <column name="deptstate" start-index="130" 
stop-index="140">
+                                    <owner name="d" start-index="130" 
stop-index="130" />
+                                </column>
+                            </parameter>
+                            <parameter>
+                                <column name="deptzip" start-index="142" 
stop-index="150">
+                                    <owner name="d" start-index="142" 
stop-index="142" />
+                                </column>
+                            </parameter>
+                        </function>
+                    </expr>
+                </expression-projection>
+            </projections>
+            <from>
+                <simple-table alias="d" name="dept" start-index="170" 
stop-index="175" />
+            </from>
+        </select>
+    </create-view>
+    
+    <create-view sql-case-id="create_view_select_host_table" 
view-definition="SELECT a.empno, a.ename, b.dname FROM scott.emp a, 
[email protected] b WHERE a.deptno = b.deptno">
+        <view name="company" start-index="12" stop-index="18" />
+        <select>
+            <projections start-index="30" stop-index="54">
+                <column-projection name="empno" start-index="30" 
stop-index="36">
+                    <owner name="a" start-index="30" stop-index="30" />
+                </column-projection>
+                <column-projection name="ename" start-index="39" 
stop-index="45">
+                    <owner name="a" start-index="39" stop-index="39" />
+                </column-projection>
+                <column-projection name="dname" start-index="48" 
stop-index="54">
+                    <owner name="b" start-index="48" stop-index="48" />
+                </column-projection>
+            </projections>
+            <from>
+                <join-table join-type="COMMA">
+                    <left>
+                        <simple-table name="emp" alias="a" start-index="61" 
stop-index="71">
+                            <owner name="scott" start-index="61" 
stop-index="65" />
+                        </simple-table>
+                    </left>
+                    <right>
+                        <simple-table name="dept" alias="b" start-index="74" 
stop-index="100">
+                            <owner name="jward" start-index="74" 
stop-index="78" />
+                        </simple-table>
+                    </right>
+                </join-table>
+            </from>
+            <where start-index="102" stop-index="126">
+                <expr>
+                    <binary-operation-expression start-index="108" 
stop-index="126">
+                        <left>
+                            <column name="deptno" start-index="108" 
stop-index="115">
+                                <owner name="a" start-index="108" 
stop-index="108" />
+                            </column>
+                        </left>
+                        <right>
+                            <column name="deptno" start-index="119" 
stop-index="126">
+                                <owner name="b" start-index="119" 
stop-index="119" />
+                            </column>
+                        </right>
+                        <operator>=</operator>
+                    </binary-operation-expression>
+                </expr>
+            </where>
+        </select>
+    </create-view>
+    
+    <create-view sql-case-id="create_view_select_function_group_by_order_by" 
view-definition="SELECT deptno, MIN(sal), AVG(sal), MAX(sal) FROM emp GROUP BY 
deptno ORDER BY deptno">
+        <view name="dept_salaries" start-index="12" stop-index="24" />
+        <select>
+            <projections start-index="36" stop-index="71">
+                <column-projection name="deptno" start-index="36" 
stop-index="41" />
+                <aggregation-projection type="MIN" expression="MIN(sal)" 
start-index="44" stop-index="51">
+                    <parameter>
+                        <column name="sal" start-index="48" stop-index="50" />
+                    </parameter>
+                </aggregation-projection>
+                <aggregation-projection type="AVG" expression="AVG(sal)" 
start-index="54" stop-index="61">
+                    <parameter>
+                        <column name="sal" start-index="58" stop-index="60" />
+                    </parameter>
+                </aggregation-projection>
+                <aggregation-projection type="MAX" expression="MAX(sal)" 
start-index="64" stop-index="71">
+                    <parameter>
+                        <column name="sal" start-index="68" stop-index="70" />
+                    </parameter>
+                </aggregation-projection>
+            </projections>
+            <from>
+                <simple-table name="emp" start-index="78" stop-index="80" />
+            </from>
+            <group-by>
+                <column-item name="deptno" start-index="91" stop-index="96" />
+            </group-by>
+            <order-by>
+                <column-item name="deptno" order-direction="ASC" 
start-index="107" stop-index="112" />
+            </order-by>
+        </select>
+    </create-view>
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/insert.xml 
b/test/it/parser/src/main/resources/case/dml/insert.xml
index 441c2d12fae..f9bae458b1a 100644
--- a/test/it/parser/src/main/resources/case/dml/insert.xml
+++ b/test/it/parser/src/main/resources/case/dml/insert.xml
@@ -17,7 +17,7 @@
   -->
 
 <sql-parser-test-cases>
-    <insert sql-case-id="insert_into_values">
+    <insert sql-case-id="insert_into_values1">
         <table name="test_nested" start-index="12" stop-index="22" />
         <columns start-index="23" stop-index="23" />
         <values>
@@ -29,6 +29,150 @@
         </values>
     </insert>
     
+    <insert sql-case-id="insert_into_values2">
+        <table name="emp_table" start-index="12" stop-index="20" />
+        <columns start-index="21" stop-index="21" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="1" start-index="29" 
stop-index="29" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="John" start-index="31" 
stop-index="36" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="1000.00" start-index="38" 
stop-index="44" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Architect" start-index="46" 
stop-index="56" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
+    <insert sql-case-id="insert_into_values3">
+        <table name="emp_table" start-index="12" stop-index="20" />
+        <columns start-index="21" stop-index="21" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="2" start-index="29" 
stop-index="29" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Robert" start-index="31" 
stop-index="38" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="900.00" start-index="40" 
stop-index="45" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Developer" start-index="47" 
stop-index="57" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
+    <insert sql-case-id="insert_into_values4">
+        <table name="emp_table" start-index="12" stop-index="20" />
+        <columns start-index="21" stop-index="21" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="3" start-index="29" 
stop-index="29" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="James" start-index="31" 
stop-index="37" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="2000.00" start-index="39" 
stop-index="45" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Director" start-index="47" 
stop-index="56" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
+    <insert sql-case-id="insert_into_values5">
+        <table name="dept" start-index="12" stop-index="15" />
+        <columns start-index="16" stop-index="16" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="1" start-index="24" 
stop-index="24" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Sales" start-index="26" 
stop-index="32" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="500 Oracle pkwy" 
start-index="34" stop-index="50" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Redwood S" start-index="52" 
stop-index="62" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="CA" start-index="64" 
stop-index="67" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="94065" start-index="69" 
stop-index="75" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
+    <insert sql-case-id="insert_into_values6">
+        <table name="dept" start-index="12" stop-index="15" />
+        <columns start-index="16" stop-index="16" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="2" start-index="24" 
stop-index="24" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="ST" start-index="26" 
stop-index="29" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="400 Oracle Pkwy" 
start-index="31" stop-index="47" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Redwood S" start-index="49" 
stop-index="59" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="CA" start-index="61" 
stop-index="64" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="94065" start-index="66" 
stop-index="72" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
+    <insert sql-case-id="insert_into_values7">
+        <table name="dept" start-index="12" stop-index="15" />
+        <columns start-index="16" stop-index="16" />
+        <values>
+            <value>
+                <assignment-value>
+                    <literal-expression value="3" start-index="24" 
stop-index="24" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Apps" start-index="26" 
stop-index="31" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="300 Oracle pkwy" 
start-index="33" stop-index="49" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="Redwood S" start-index="51" 
stop-index="61" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="CA" start-index="63" 
stop-index="66" />
+                </assignment-value>
+                <assignment-value>
+                    <literal-expression value="94065" start-index="68" 
stop-index="74" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
+    
     <insert sql-case-id="insert_with_all_placeholders" parameters="1, 1, 
'init'">
         <table name="t_order" start-index="12" stop-index="18" />
         <columns start-index="20" stop-index="46">
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
index 1c7de9f5fc7..c9c08280ff9 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
@@ -25,9 +25,14 @@
     <sql-case id="create_view_with_recursive" value="CREATE RECURSIVE VIEW 
public.nums_1_100 (n) AS VALUES (1) UNION ALL SELECT n+1 FROM nums_1_100 WHERE 
n = 100" db-types="PostgreSQL,openGauss" />
     <sql-case id="create_view_with_option" value="CREATE OR REPLACE TEMP view 
order_view (order_id,user_id) WITH (security_barrier=TRUE) AS SELECT * FROM 
t_order" db-types="PostgreSQL,openGauss" />
     <sql-case id="create_or_replace_view_with_select" value="create or replace 
view named_moons as select p.name planet, p.class, m.name moon, m.radius from 
planets p, moons m where p.name = m.planet_name(+) and m.name(+) not like 
'S/%'" db-types="Oracle" />
-    <sql-case id="create_view_as_simple_select" value="CREATE VIEW 
laurel.employee AS SELECT * FROM laurel.emp" db-types="Oracle" />
+    <sql-case id="create_view_as_simple_select1" value="CREATE VIEW 
laurel.employee AS SELECT * FROM laurel.emp" db-types="Oracle" />
+    <sql-case id="create_view_as_simple_select2" value="CREATE VIEW dept AS 
SELECT * FROM scott.dept" db-types="Oracle" />
     <sql-case id="create_view_as_where_where" value="CREATE VIEW 
employees_departments AS SELECT employee_id, last_name, department_id FROM 
employees, departments WHERE employees.department_id = 
departments.department_id" db-types="Oracle" />
     <sql-case id="create_view_select_partition" value="CREATE VIEW 
Q1_2000_sales AS SELECT * FROM sales PARTITION (SALES_Q1_2000)" 
db-types="Oracle" />
     <sql-case id="create_view_select_with_check_option" value="CREATE VIEW 
clerk AS SELECT employee_id, last_name, department_id, job_id FROM employees 
WHERE job_id = 'PU_CLERK' or job_id = 'SH_CLERK' or job_id = 'ST_CLERK' WITH 
CHECK OPTION" db-types="Oracle" />
     <sql-case id="create_view_select_union" value="CREATE VIEW 
all_employees_vw AS (SELECT employee_id, last_name, job_id, commission_pct, 
department_id FROM employees) UNION (SELECT employee_id, last_name, job_id, 
commission_pct, department_id FROM contract_workers)" db-types="Oracle" />
+    <sql-case id="create_view_with_object_identifier1" value="CREATE VIEW 
emp_view1 OF employee_t WITH OBJECT IDENTIFIER (empno) AS SELECT e.empnum, 
e.ename, e.salary, e.job FROM emp_table e WHERE job = 'Developer'" 
db-types="Oracle" />
+    <sql-case id="create_view_with_object_identifier2" value="CREATE VIEW 
dept_view OF dept_t WITH OBJECT IDENTIFIER (deptno) AS SELECT d.deptno, 
d.deptname, address_t(d.deptstreet,d.deptcity,d.deptstate,d.deptzip) AS 
deptaddr FROM dept d" db-types="Oracle" />
+    <sql-case id="create_view_select_host_table" value="CREATE VIEW company AS 
SELECT a.empno, a.ename, b.dname FROM scott.emp a, [email protected] b 
WHERE a.deptno = b.deptno" db-types="Oracle" />
+    <sql-case id="create_view_select_function_group_by_order_by" value="CREATE 
VIEW dept_salaries AS SELECT deptno, MIN(sal), AVG(sal), MAX(sal) FROM emp 
GROUP BY deptno ORDER BY deptno" db-types="Oracle" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/insert.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
index e0b952221e6..a1a9d530623 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
@@ -17,7 +17,13 @@
   -->
 
 <sql-cases>
-    <sql-case id="insert_into_values" value="INSERT INTO test_nested 
VALUES(1)" db-types="MySQL" />
+    <sql-case id="insert_into_values1" value="INSERT INTO test_nested 
VALUES(1)" db-types="MySQL" />
+    <sql-case id="insert_into_values2" value="insert into emp_table 
values(1,'John',1000.00,'Architect')" db-types="Oracle" />
+    <sql-case id="insert_into_values3" value="insert into emp_table 
values(2,'Robert',900.00,'Developer')" db-types="Oracle" />
+    <sql-case id="insert_into_values4" value="insert into emp_table 
values(3,'James',2000.00,'Director')" db-types="Oracle" />
+    <sql-case id="insert_into_values5" value="insert into dept 
values(1,'Sales','500 Oracle pkwy','Redwood S','CA','94065')" db-types="Oracle" 
/>
+    <sql-case id="insert_into_values6" value="insert into dept 
values(2,'ST','400 Oracle Pkwy','Redwood S','CA','94065')" db-types="Oracle" />
+    <sql-case id="insert_into_values7" value="insert into dept 
values(3,'Apps','300 Oracle pkwy','Redwood S','CA','94065');" db-types="Oracle" 
/>
     <sql-case id="insert_with_all_placeholders" value="INSERT INTO t_order 
(order_id, user_id, status) VALUES (?, ?, ?)" />
     <sql-case id="insert_with_historical_type_cast_syntax" value="INSERT INTO 
t_order (order_id, user_id, status) VALUES (?, ?::int4, ?::text)" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="insert_with_now_function" value="INSERT INTO t_order_item 
(item_id, order_id, user_id, status, creation_date) VALUES (?, ?, ?, 'insert', 
now())" db-types="MySQL" />

Reply via email to