oracle过程中查询语句where条件中带变量怎么实现?
DECLAREv_aVARCHAR2(20):='sal';v_infoVARCHAR2(20):='CLERK';v_sqlVARCHAR2(200);TYPEtab_...
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; 展开
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; 展开
3个回答
展开全部
带变量的一遍需要写个过程。或者如下:
SELECT * FROM DUAL WHERE BITAND(1, 1) = &1
&1在执行的时候会提示你输入参数。如果有多个参数就&2,&3.....
SELECT * FROM DUAL WHERE BITAND(1, 1) = &1
&1在执行的时候会提示你输入参数。如果有多个参数就&2,&3.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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来接收一个参数就可以了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在变量前加&?
不知道你什么意思
不知道你什么意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询