【问题标题】:SQl - ORA993 Command Not properly EndedSQl - ORA993 命令未正确结束
【发布时间】:2013-02-25 22:37:12
【问题描述】:

代码:

UPDATE
        bid
SET
        bid.salesman_id = s.salesman_id
FROM
        bid
INNER JOIN
        salesman
ON
        bid.salesman = s.display_name
WHERE 
        bid.salesman is not null

当我运行它时,它会产生一个 ora 993 错误 - 说明 sql 语句没有正确结束。

bid 和 salesman 是表名

【问题讨论】:

  • 跳出来的一件事是您使用s 作为表别名,但从未将表别名为s
  • 你看过dba-oracle.com/t_ora_00933_sql_command_ended.htm>吗?
  • 对不起,s 应该是推销员
  • @jordan.peoples - 对 ">" 被吸进了 URL 应该是:(dba-oracle.com/t_ora_00933_sql_command_ended.htm)
  • @PM77-1 ,我还没有看到那个确切的站点...但是是的,我当然在来这里之前看到并阅读了这个确切的问题。它根本不适用于我的问题/sql。

标签: sql oracle join sql-update


【解决方案1】:

很遗憾,这在 Oracle 中无效。

我认为你必须尝试这样的事情:

UPDATE bid SET bid.salesman_id = (SELECT salesman.salesman_id
                                  FROM salesman
                                  WHERE bid.salesman = salesman.display_name)
WHERE bid.salesman is not null

【讨论】:

  • 非常感谢,感谢您发现我的 s。意思是推销员。
【解决方案2】:

一方面,我看不到您在哪里为 salesman 创建别名。你也可以这样做:

Update bid
set bid.salesman_id = 
   (select s.salesman_id 
      from salesman s 
      where bid.salesman = s.display_name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多