UPDATE FILE_BANK_TRANS_HELP T1 JOIN FILE_BANK_TRANS T2 ON T2.REFER_NO_FULL = T1.TR_XSERNO AND T1.TR_DATE = '#{BATCH_WORK_DATE}' SET T1.TERM_ID = T2.TERM_ID, T1.CARD_NO = T2.CARD_NO;转换为Oracle语句
时间: 2023-08-02 11:10:47 浏览: 36
在Oracle中,可以使用类似如下的语法来将MySQL中的语句转换为等价的Oracle语句:
```
MERGE INTO FILE_BANK_TRANS_HELP T1
USING (
SELECT T2.TERM_ID, T2.CARD_NO, T2.REFER_NO_FULL
FROM FILE_BANK_TRANS T2
WHERE T2.REFER_NO_FULL IN (
SELECT TR_XSERNO FROM FILE_BANK_TRANS_HELP WHERE TR_DATE = '#{BATCH_WORK_DATE}'
)
) T2
ON (T2.REFER_NO_FULL = T1.TR_XSERNO)
WHEN MATCHED THEN UPDATE SET T1.TERM_ID = T2.TERM_ID, T1.CARD_NO = T2.CARD_NO;
```
注意,在Oracle中,在使用MERGE INTO语法时必须指定WHEN MATCHED或WHEN NOT MATCHED子句。在这里,我们使用WHEN MATCHED子句来更新已经匹配的行。另外,需要注意的是,Oracle中不支持MySQL的JOIN语法,因此我们使用了子查询来代替JOIN子句。
相关问题
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
`sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES` 是 MySQL 中的一个参数,它控制了 MySQL 的一些行为。具体来说,`NO_ENGINE_SUBSTITUTION` 参数会禁止 MySQL 在找不到指定的存储引擎时使用默认存储引擎进行替换,而 `STRICT_TRANS_TABLES` 参数会启用严格的事务模式,不允许插入无效的数据。
如果您在 MySQL 连接时遇到了 `unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'` 的错误,那么很可能是因为您的 MySQL 版本不支持这些参数或者配置文件中没有定义这些参数。您可以尝试在连接 MySQL 之前设置这些参数,或者检查您的 MySQL 配置文件中是否定义了它们。
unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
这个错误信息通常出现在 MySQL 中,它表示 MySQL 配置文件中没有定义 `sql_mode` 参数,或者您的 MySQL 版本不支持它。`sql_mode` 参数用于控制 MySQL 在执行查询时的行为。具体来说,`NO_ENGINE_SUBSTITUTION` 参数会禁止 MySQL 在找不到指定的存储引擎时使用默认存储引擎进行替换,而 `STRICT_TRANS_TABLES` 参数会启用严格的事务模式,不允许插入无效的数据。
如果您在使用 MySQL 时遇到了 `unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'` 的错误,那么您可以尝试在 MySQL 连接之前设置 `sql_mode` 参数,或者检查您的 MySQL 配置文件中是否定义了它们。例如,您可以在连接 MySQL 时执行以下语句来设置 `sql_mode` 参数:
```
SET sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
```
如果您需要更具体的帮助,请提供更多上下文信息。