【问题标题】:ORACLE select into variableORACLE 选择成变量
【发布时间】:2020-07-30 13:51:06
【问题描述】:

正如herehere 的回答所暗示的那样,这应该很容易。但是,我收到一个错误:

ORA-00905: 缺少关键字 00905. 00000 - “缺少关键字” *原因:
*操作:第 7 行错误:36 列

我的代码:

vEXTERNAL_ACCOUNT_ID VARCHAR2(20);

  (SELECT EXTERNAL_ACCOUNT_ID INTO vEXTERNAL_ACCOUNT_ID FROM TOF_ORDER_DATA WHERE ID = 
 (SELECT TOF_ORDER_DATA_ID FROM TOF_WFI WHERE WFI_ID = 3466444));

我想要的只是从上面的查询中设置 vEXTERNAL_ACCOUNT_ID(它只返回一个结果)。我不明白我在这里做错了什么?

【问题讨论】:

  • select 两边的括号完全没用。

标签: oracle plsql


【解决方案1】:

这是 PL/SQL,所以:

declare
  vexternal_account_id varchar2(20);
begin  
  select external_account_id 
    into vexternal_account_id 
    from tof_order_data 
    where id = (select tof_order_data_id 
                from tof_wfi 
                where wfi_id = 3466444
               );

  dbms_output.put_line('Value = ' || vexternal_account_id);
end;
  • 声明变量
  • 使用开始-结束关键字
  • 删除最外面的括号
  • 为了显示查询返回的值,使用dbms_output.put_line
    • 别忘了在你使用的工具中set serveroutput on

【讨论】:

  • 这行得通。如何检查 vexternal_account_id 值? SELECT vexternal_account_id 抛出错误。
  • 使用dbms_output.put_line;我编辑了之前发布的代码 - 看看。
  • 我没有看到任何输出。我正在使用 sql 开发人员。抱歉,没关系 - 我忘了打开服务器输出。
  • 如我所说:先执行set serveroutput on 以启用输出。如何?就像那样 - 将该行复制到 SQL Developer 并执行它。然后运行你的 PL/SQL 代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
  • 2020-12-20
相关资源
最近更新 更多