Oracle sql与双where子句合并到

Oracle sql与双where子句合并到,sql,oracle,sql-merge,Sql,Oracle,Sql Merge,我有以下SQL代码(这是我到目前为止的收入): 但我收到以下错误消息: SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" 为什么会出现这种错误?在哪里更改代码以使其工作 谢谢你的帮助 那么,您必须从UPDATE语句中删除ORDER BY。 我没有您的表结构和数据,请按 MERGE INTO schema_1.table_1 table1 USING (S

我有以下SQL代码(这是我到目前为止的收入):

但我收到以下错误消息:

SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis"
为什么会出现这种错误?在哪里更改代码以使其工作


谢谢你的帮助

那么,您必须从UPDATE语句中删除
ORDER BY
。 我没有您的表结构和数据,请按

MERGE INTO schema_1.table_1 table1
     USING (SELECT *
              FROM    schema_2.table_2 table2
                   LEFT JOIN
                      schema_2.view_1 view1
                   ON table2.column_4 = view1.column_1) t2
        ON (table1.column_2 = t2.column_5)
WHEN MATCHED
THEN
   UPDATE SET
      table1.column_3 = t2.column_6
           WHERE table1.column_2 IN
                    (SELECT table1.column_2
                       FROM schema_1.table_1 table1,
                            schema1.table_3 table3,
                            schema1.table_4 table4,
                            schema1.table_5 table5,
                            schema1.table_6 table6,
                            schema1.table_7 table7
                      WHERE     table4.column_7 = table3.column_8
                            AND table5.column_9 = table4.column_10
                            AND table5.column_11 = table1.column_12
                            AND table4.column_13 = table7.column_14
                            AND table7.column_15 = table6.column_16
                            AND table6.column_17 = 'DOL'
                            AND table4.column_18 = 1
                            AND table1.column_2 IS NOT NULL
                            AND table1.column_3 IS NULL)

您的错误或问题到底是什么?SQL错误:ORA-30926:无法在源表30926中获取一组稳定的行。00000-“无法在源表中获取稳定的行集”*原因:由于dml活动较大或where子句不确定,无法获取稳定的行集*措施:删除任何不确定的where子句并重新发出dml。但是sql是否正确,我的意思是它将只更新受最后一个where子句限制的行?@Humanbell如果没有表结构和示例数据,这将很困难。但是您所遇到的错误是由于
ORDER BY
子句引起的。@HumanBehing
表1。列_19
不是选择列表的一部分。@HumanBehing最重要的是,子查询中的
ORDER BY
是不允许的。现在我得到这个错误:SQL错误:ORA-30926:无法在源表30926中获得一组稳定的行。00000-“无法在源表中获取稳定的行集”*原因:由于dml活动较大或where子句不确定,无法获取稳定的行集*措施:删除任何不确定的where子句并重新发布dml。
MERGE INTO schema_1.table_1 table1
     USING (SELECT *
              FROM    schema_2.table_2 table2
                   LEFT JOIN
                      schema_2.view_1 view1
                   ON table2.column_4 = view1.column_1) t2
        ON (table1.column_2 = t2.column_5)
WHEN MATCHED
THEN
   UPDATE SET
      table1.column_3 = t2.column_6
           WHERE table1.column_2 IN
                    (SELECT table1.column_2
                       FROM schema_1.table_1 table1,
                            schema1.table_3 table3,
                            schema1.table_4 table4,
                            schema1.table_5 table5,
                            schema1.table_6 table6,
                            schema1.table_7 table7
                      WHERE     table4.column_7 = table3.column_8
                            AND table5.column_9 = table4.column_10
                            AND table5.column_11 = table1.column_12
                            AND table4.column_13 = table7.column_14
                            AND table7.column_15 = table6.column_16
                            AND table6.column_17 = 'DOL'
                            AND table4.column_18 = 1
                            AND table1.column_2 IS NOT NULL
                            AND table1.column_3 IS NULL)