【问题标题】:How to concatenate multiple values to use in the select query in Oracle [duplicate]如何连接多个值以在 Oracle 中的选择查询中使用 [重复]
【发布时间】:2018-04-26 18:16:47
【问题描述】:

我有以下问题

set serveroutput on;
declare store_nbr number(9,0);
Begin
Select trim(NODE_ID) into store_nbr  from HOST_STORE_PROFILE 
where sysdate between EFCV_DTE and EXPR_DTE and TO_CHAR(NODE_ID) in 
('12175','22671','16449');
dbms_output.Put_line(store_nbr);
end;

这可以正常工作并打印一个值(store_nbr)。

但是当我尝试用变量声明替换 select 语句中的“in”条件时,它没有按预期工作。

我是这样做的:

declare store_nbr number(9,0);
ca_store_nbr varchar2(4096) := '(12175,22671,25519)';
begin
Select NODE_ID into store_nbr from HOST_STORE_PROFILE 
where sysdate between EFCV_DTE and EXPR_DTE and TO_CHAR(NODE_ID) in || 
ca_store_nbr;
dbms_output.Put_line(store_nbr);
end;

我没有将值放入 store_nbr。

第二个查询出了什么问题。

【问题讨论】:

    标签: oracle select


    【解决方案1】:

    这需要是动态sql语句。

    从整个语句中创建一个字符串并使用类似

    的内容执行
    EXECUTE IMMEDIATE <sql statement>
    

    【讨论】:

    • 我也试过了。但是没用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多