【发布时间】:2021-07-27 08:29:11
【问题描述】:
我正在尝试编写一个 PLSQL 块,如果它包含指定的查找文本,它将显示指定表的列名。
请在下面找到我的程序的代码:
执行后我没有得到任何结果。在示例 HR 模式中使用它。在下面的示例中,我试图找出包含 Steven 的列。
set serveroutput on;
exec col_name_string('EMPLOYEES','STEVEN')
;
我认为我的代码有一些问题,但仍然没有抛出任何运行时异常。
【问题讨论】:
-
因为您使用的是绑定变量,所以您正在执行以下查询 select count(1) from EMPLOYEES where UPPER( :col ) = UPPER(:search_value) 而不是 select count(1) from EMPLOYEES其中 UPPER( COLUMN_NAME ) = UPPER(:search_value) 如您所料。我的意思是,您正在比较 2 个变量而不是列与变量。您需要动态创建 SQL 文本,而不是使用 UPPER(:col),如图所示。没有错误,因为您正在执行一个好的查询,但不是所需的。真的很有趣。
标签: oracle stored-procedures plsql