小编ank*_*kit的帖子

变量作为 Oracle PL/SQL 中 where 子句中的列名

我正在处理 PL/SQL 代码,我需要在 where 子句中使用变量作为列名来执行选择查询。列名作为 varchar 存储在表中,我使用循环将这些列名传递给我的 select 语句。

请找到我正在尝试运行的示例代码段:

set serveroutput on;

declare
var varchar2(100);
counter number;
begin

var:='description';
select count(*) 
into counter
            from nodetable
           where  var like '%Ship%';

dbms_output.put_line(counter);
end;
Run Code Online (Sandbox Code Playgroud)

输出:

anonymous block completed
0
Run Code Online (Sandbox Code Playgroud)

但是结果应该是 86。Oracle 将最后一个条件作为两个字符串而不是 column=string 进行比较。

请让我知道这在 oracle 中是否可行,或者是否有解决方法。

问候 Ankit

sql database oracle plsql

1
推荐指数
1
解决办法
5976
查看次数

标签 统计

database ×1

oracle ×1

plsql ×1

sql ×1