我想从表格中选择一些数据。 为此,我写了这个程序:
create or replace procedure find_and_insert
colname varchar2(4000);
var varchar2(4000);
colval varchar2(4000);
begin
colname := 'COUNTRY_ID';
var := 'select distinct(colname) into colval from HR.countries where colname = '||'AR'||';';
execute immediate var;
end;
但它不起作用。它将'COUNTRY_ID'返回到colval,而不是COUNTRY_ID的数据; 任何人都可以帮助我吗?
答案 0 :(得分:0)
我不认为该过程成功执行。您将收到colname : invalid identifier
错误。
由于colname是一个变量,你应该将它连接到你的选择字符串。
var := 'select distinct('||colname||')
into colval
from HR.countries
where '||colname ||'= AR';
答案 1 :(得分:0)
这里,使用语句colname:='COUNTRY_ID';
您只是将字符串'COUNTRY_ID'分配给varchar2类型变量colname。简而言之,该程序为您提供了正确的输出。我建议你写为:
'select distinct('||colname||')
into colval
from HR.countries
where '||colname ||'= AR';
如上面的答案所述。此外,我看到你作为HR.countries访问表国家,所以我觉得你最好以类似的方式访问查询中的列名,如
'select distinct(HR.countries.'||colname||')
into colval
from HR.countries
where HR.countries.'||colname ||'= AR';