oracle过程中查询语句where条件中带变量怎么实现?

DECLARE
v_a VARCHAR2(20) := 'sal';
v_info VARCHAR2(20) := 'CLERK';
v_sql VARCHAR2(200);
TYPE tab_org_name IS TABLE OF VARCHAR2(50);
v_org_name_tab tab_org_name;
BEGIN
v_sql := 'SELECT '|| v_a ||' FROM emp WHERE emp.JOB = v_info ;
dbms_output.put_line(v_sql);
EXECUTE IMMEDIATE v_sql BULK COLLECT INTO v_org_name_tab;
FOR i IN 1 .. v_org_name_tab.count LOOP
dbms_output.put_line(v_org_name_tab(i));
END LOOP;
END;

第1个回答  推荐于2017-09-01
带变量的一遍需要写个过程。或者如下:
SELECT * FROM DUAL WHERE BITAND(1, 1) = &1
&1在执行的时候会提示你输入参数。如果有多个参数就&2,&3.....
第2个回答  推荐于2017-09-25
 v_sql := 'SELECT '|| v_a ||' FROM emp WHERE emp.JOB = v_info ;

不会报错么?

 v_sql := 'SELECT '|| v_a ||' FROM emp WHERE emp.JOB ='|| v_info ;

v_info就变量,只不过你这里是一开始就给定了值。 你可以写成procedure来接收一个参数就可以了。

本回答被提问者和网友采纳
第3个回答  2015-01-24
在变量前加&?
不知道你什么意思

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网