【问题标题】:update table column with Cursor value使用光标值更新表列
【发布时间】:2014-02-05 08:48:13
【问题描述】:

您好,我的游标有问题,我的 PL/SQL 中有这段代码

update CAND_ORDER SET SOURCE_SITE_ID = i.SITE_ID WHERE CAND_ORDER_ID IN
(select CAND_ORDER_ID from CAND_ORDER where SOURCE_SITE_ID is null and SP_TRIAL_MATERIAL_ID in 
(select SP_TRIAL_MATERIAL_ID from SP_TRIAL_MATERIAL where SP_RESEARCH_STATION_ID_SOURCE IN 
(select SP_RESEARCH_STATION_ID from SP_RESEARCH_STATION where SP_RESEARCH_STATION.CODE IN 
(SELECT SITE_CODE from SITE WHERE SITE.SITE_CODE=i.SITE_CODE))));

它给出了一个错误提示:

PLS-00302: component 'SITE_ID' must be declared
ORA-06550: line 17, column 44:
PL/SQL: ORA-00904: "I"."SITE_ID": invalid identifier

我完全不明白,请您帮忙指出什么问题

【问题讨论】:

  • r u 引用另一个表中的 site_id。当您获得无效标识符时,请提供您正在使用的表(字段)的正确代码或结构
  • @user2940216 谢谢我发现 site_id 作为一个字段在添加时没有添加它工作正常

标签: sql oracle plsql cursor sql-update


【解决方案1】:

我认为错误出在游标本身,因为 SITE_ID 没有作为列添加到游标中。我加了,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多