我有三个表
TN_PROCESS_PLANNING 工艺表
TN_DOCUMENTATION 文档
TN_LINK_01036 工艺和文档的链接表
TN_LINK_01036的OBJECT_ID1是文档对象
TN_LINK_01036的OBJECT_ID2是工艺对象下面这个sql语句在sqlserver中运行正常
UPDATE TN_PROCESS_PLANNING
SET STATE = TN_DOCUMENTATION.STATE, FILE_NAME = TN_DOCUMENTATION.FILE_NAME
FROM TN_DOCUMENTATION INNER JOIN
TN_LINK_01036 ON
TN_DOCUMENTATION.OBJECT_ID = TN_LINK_01036.OBJECT_ID1 INNER JOIN
TN_PROCESS_PLANNING ON
TN_LINK_01036.OBJECT_ID2 = TN_PROCESS_PLANNING.OBJECT_ID
在oracle里运行报错:sql命令未正确结束弄了一下午,急啊,哪位大哥帮帮忙
TN_PROCESS_PLANNING 工艺表
TN_DOCUMENTATION 文档
TN_LINK_01036 工艺和文档的链接表
TN_LINK_01036的OBJECT_ID1是文档对象
TN_LINK_01036的OBJECT_ID2是工艺对象下面这个sql语句在sqlserver中运行正常
UPDATE TN_PROCESS_PLANNING
SET STATE = TN_DOCUMENTATION.STATE, FILE_NAME = TN_DOCUMENTATION.FILE_NAME
FROM TN_DOCUMENTATION INNER JOIN
TN_LINK_01036 ON
TN_DOCUMENTATION.OBJECT_ID = TN_LINK_01036.OBJECT_ID1 INNER JOIN
TN_PROCESS_PLANNING ON
TN_LINK_01036.OBJECT_ID2 = TN_PROCESS_PLANNING.OBJECT_ID
在oracle里运行报错:sql命令未正确结束弄了一下午,急啊,哪位大哥帮帮忙
解决方案 »
- Toad 连接oracle数据出的问题:无法解析指定的连接标识符
- 请问如何用vc++实现Oracle9i的导入导出功能啊?急求,谢谢了!
- 急求sql语句
- 如何标记记录的多个状态,select的时候取余作为条件对性能影响大不大
- ADO连接oracle数据库,请问怎么样在程序中获取表结构的信息:如各个字段的数据类型,以及其长度,主关键字等..问题有点麻烦,但没分了。.抱歉.
- 时间比较的问题
- 如何采集oracle数据库的性能、告警参数?
- 分组分两次怎么分???
- 关于oracle的安装
- Oracle乱码
- ORACLE中取出表中按照某字段排序的前N条记录,再把这前N条记录删除?
- 求一个多表查询左连接或右连接的sql
SET a.STATE = b.STATE,a.FILE_NAME = b.FILE_NAME
where b.OBJECT_ID = c.OBJECT_ID1 and
c..OBJECT_ID2 = a.OBJECT_ID
;
SET a.STATE = b.STATE,a.FILE_NAME = b.FILE_NAME
where b.OBJECT_ID = c.OBJECT_ID1 and
a.OBJECT_ID = c.OBJECT_ID2
;
你的写法不对了当然提示错误了
update 表 set 字段 where 条件
update 表 set 字段=(select 字段 from 表 where 条件) where 条件
SET a.STATE = b.STATE,a.FILE_NAME = b.FILE_NAME
where b.OBJECT_ID = c.OBJECT_ID1 and
c.OBJECT_ID2 = a.OBJECT_ID
;
-- 1ST WAY:
UPDATE TN_PROCESS_PLANNING
SET (STATE, FILE_NAME) = (SELECT TN_DOCUMENTATION.STATE,
TN_DOCUMENTATION.FILE_NAME
FROM TN_DOCUMENTATION, TN_LINK_01036
WHERE TN_DOCUMENTATION.OBJECT_ID =
TN_LINK_01036.OBJECT_ID1
AND TN_LINK_01036.OBJECT_ID2 =
TN_PROCESS_PLANNING.OBJECT_ID)
WHERE EXISTS
(SELECT 1
FROM TN_DOCUMENTATION, TN_LINK_01036
WHERE TN_DOCUMENTATION.OBJECT_ID = TN_LINK_01036.OBJECT_ID1
AND TN_LINK_01036.OBJECT_ID2 = TN_PROCESS_PLANNING.OBJECT_ID);-- 2ND WAY:
UPDATE (SELECT TN_DOCUMENTATION.STATE STATE_DO,
TN_DOCUMENTATION.FILE_NAME FILE_NAME_DO,
TN_PROCESS_PLANNING.STATE STATE_TN,
TN_PROCESS_PLANNING.FILE_NAME FILE_NAME_TN
FROM TN_DOCUMENTATION, TN_LINK_01036, TN_PROCESS_PLANNING
WHERE TN_DOCUMENTATION.OBJECT_ID = TN_LINK_01036.OBJECT_ID1
AND TN_LINK_01036.OBJECT_ID2 = TN_PROCESS_PLANNING.OBJECT_ID)
SET (STATE_TN, FILE_NAME_TN) = (STATE_DO, FILE_NAME_DO);