Oracle 上使用内连接更新语句

2023-12-29

我有一个在 MySQL 中运行良好的查询,但是当我在 Oracle 上运行它时,出现以下错误:

SQL 错误:ORA-00933:SQL 命令未正确结束
00933. 00000 - “SQL 命令未正确结束”

查询是:

UPDATE table1
INNER JOIN table2 ON table1.value = table2.DESC
SET table1.value = table2.CODE
WHERE table1.UPDATETYPE='blah';

该语法在 Oracle 中无效。你可以这样做:

UPDATE table1 SET table1.value = (SELECT table2.CODE
                                  FROM table2 
                                  WHERE table1.value = table2.DESC)
WHERE table1.UPDATETYPE='blah'
AND EXISTS (SELECT table2.CODE
            FROM table2 
            WHERE table1.value = table2.DESC);

Or you might能够做到这一点:

UPDATE 
(SELECT table1.value as OLD, table2.CODE as NEW
 FROM table1
 INNER JOIN table2
 ON table1.value = table2.DESC
 WHERE table1.UPDATETYPE='blah'
) t
SET t.OLD = t.NEW

这取决于 Oracle 是否认为内联视图可更新 (第二条语句的可更新取决于列出的一些规则here https://docs.oracle.com/database/121/SQLRF/statements_8004.htm#sthref6060 ).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 上使用内连接更新语句 的相关文章

随机推荐

  • 使用 Google Sheets API,当我输入数据时,不支持添加和更新列格式

    所以 这实际上是一个基于我上次尝试的后续问题 如何使用 API 将列添加到 Google Sheets 并在同一调用中提供列的名称和类型 https stackoverflow com questions 57259399 how to a
  • 高效的java对象图序列化

    序列化 java 对象图的最佳方法是什么 我对序列化库的要求是 1 反序列化速度 2 size 尽可能小 小于java默认序列化中的大小 3 灵活性 基于注释的定义必须序列化的内容会很好 底层文件格式并不重要 我查看了Protocol Bu
  • 具有统一初始化的 Auto 扩展为意外类型

    考虑这个用 GCC 4 7 2 编译的短程序g std c 11 test cc include
  • 使用 Susnpot Gem 进行 Solr 搜索

    我目前正在使用 sunspot gem 在我的 Rails 应用程序中实现全文搜索 通过 Sunspot Solr 在我的网站上进行的查询正在运行并返回正确的结果 但是 当我尝试使用 Solr 管理页面进行查询时 我很难显示结果 使用查询字
  • 开发截图 Chrome 扩展

    我在这里看到了很多答案 但没有一个是我要找的 我想从 chrome 扩展程序中截取我第一次看到的屏幕的屏幕截图 而无需滚动页面 并 提醒 创建的文件base64路径 我拥有所有正确的权限 permissions activeTab tabs
  • 在编译输出中包含外部类型定义

    我正在用 TypeScript 编写一个库 cjol core 它具有 JavaScript 依赖性dep 其中没有 types包可用 相反 我写了一个自定义dep d ts文件 这使得我在开发库时所有的类型都能很好地工作 一切编译都很好b
  • 使用本地 npm 注册表在 Hyperledger Composer 中实例化 Chaincode

    我想在没有任何互联网连接的环境中实例化链代码 由于链码容器将发出npm install实例化后 我添加了一个名为的新容器npmregistry in the docker composer yml因此它与 Fabric 容器的其余部分一起配
  • 在 Windows 上安装 TkinterTreectrl

    我尝试在Windows7上安装TkTreectrl但没有成功 我下载了2 0 1版本的包解压并尝试运行setup py 那个人总是首先抱怨文件夹 TkTreectrl 不存在 这是错误的 因为该文件夹随下载一起提供 并且我在 TkTreec
  • recyclerView 拖放后在 Room 中保存新位置

    我在我的应用程序中实现了带有拖放功能的 recyclerView 一切工作正常 直到应用程序重新启动 应用程序不会保存 记住任何拖放更改 我试过了 使用 SharedPreference GSON 阅读其他 SQLite 答案 如下所示 拖
  • 如何在javascript或jquery中获取没有页面的当前url

    如何在没有 Javascript 或 jQuery 页面的情况下获取当前 URL 例如 如果网址是 http www abc com music pop aspx http www abc com music pop aspx 我想获得没有
  • 如何存储大字典?

    我有一本大字典 28 MB MyDict 存储在MyDict py file 如果我执行语句 from MyDict import MyDict A MemoryError抛出异常 我如何使用访问这本词典cPickle or shelve模
  • 命名参数可以与 Python 枚举一起使用吗?

    Example class Planet Enum MERCURY mass 3 303e 23 radius 2 4397e6 def init self mass radius self mass mass in kilograms s
  • ruby:关键字“in”的含义是什么

    当我第一次在 ruby 中找到关键字 in 时 我想也许我可以这样做 1 英寸 0 10 但看起来我不能这样使用它 然后我在 ruby lang org 中搜索它 并用 google 进行搜索 没有答案 ruby 中关键字 in 的含义是什
  • oracle中的序列创建

    我想在oracle中创建一个序列 其中列字段 Empid 的最大值必须是序列的最小值 下面是我在同一个 stackexchange 中找到的 create sequence mytemp seq start with v Startval
  • KILL 信号会立即退出进程吗?

    我正在开发一个使用的服务器代码fork 并执行创建子进程 孩子的PID在以下情况下被注册fork 成功并清理时CHILD信号已被捕获 如果服务器需要停止 所有程序都会被终止 最终会发出 KILL 信号 现在 这是通过迭代所有注册的 PID
  • 刷新 PopupWindow.dismiss 上的父片段

    我有一个 popupWindow 它修改 SQLight 表 该表在父窗口中加载微调器 我希望当我关闭 PopupWindow 时 使用新值刷新父窗口中的微调器 下面的代码显示了我创建一个侦听器的进度 该侦听器将检测 PopupWindow
  • 使用 awk 获取一列的最大值,另一列的每个唯一值

    所以我有一个文件 例如 10 1 abc 10 2 def 10 3 ghi 20 4 elm 20 5 nop 20 6 qrs 30 3 tuv 我想为第一列的每个值获取第二列的最大值 即 10 3 ghi 20 6 qrs 30 3
  • 不允许特定字符串的 XML 架构限制模式

    我需要编写一个对字段进行限制的 XSD 架构 以确保 该字段的值在任何位置都不包含子字符串 FILENAME 例如 以下所有内容都必须无效 FILENAME ORIGINFILENAME FILENAMETEST 123FILENAME45
  • OracleCommand 内存泄漏

    我正在使用 ODP Net 版本 11 1 0 将数据插入数据库 并且发现内存泄漏 如果我注释掉下面的代码 它就会消失 这段代码在我的应用程序中被调用了数千次 并且我可以看到所有堆中的字节数随着它的运行而稳定增长 cmdStr 包含一个插入
  • Oracle 上使用内连接更新语句

    我有一个在 MySQL 中运行良好的查询 但是当我在 Oracle 上运行它时 出现以下错误 SQL 错误 ORA 00933 SQL 命令未正确结束00933 00000 SQL 命令未正确结束 查询是 UPDATE table1 INN