**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
18天前关闭。
Improve this question
我尝试了这段代码,但它不起作用,我如何才能从函数中返回带有ID的特定列?
create or replace function getData(column_name varchar2,emp_id number)
return varchar2 is
name varchar2(100);
sql_stmt VARCHAR2(100);
begin
sql_stmt :='SELECT ' || column_name
|| ' FROM employees'||
'WHERE EMPLOYEE_ID ='||emp_id;
execute immediate sql_stmt into name using emp_id;
return name;
end;
select getData('FIRST_NAME',EMPLOYEE_ID)
from employees
WHERE EMPLOYEE_ID=100
1条答案
按热度按时间waxmsbnn1#
问题就出在这几行
它生成了
SELECT FIRST_NAME FROM employeesWHERE EMPLOYEE_ID = 100
语句,由于缺少空格而失败。让我们修正一下,它就可以工作了。不过,你在做
关键字
USING
表示存在绑定变量,但字符串sql_stmt是硬编码的(您只是将所有内容连接起来),没有绑定变量。要使用绑定变量,请使用以下语法:注意,绑定变量不能是列名,因此需要进行连接,并且为了可读性,我在变量前面加上了“l_”前缀。