select *
from ur
where username = 'gbk'
and jtmk name like (select name from qc where lm_ = 'gtjl') || '*%')请问如何构造这个动态语句请赐教
谢谢
急用
from ur
where username = 'gbk'
and jtmk name like (select name from qc where lm_ = 'gtjl') || '*%')请问如何构造这个动态语句请赐教
谢谢
急用
str_sql:=’insert into dinya_test values(:1,:2)’;
execute immediate str_sql using id,name; --使用了using子句,按顺序将输入的值绑定到变量
2:使用DBMS_SQL包
select *
from ur
where username = 'gbk'
and jtmk name like 'abc*%'该如何做
不晓得我说清楚没有
你先写好SQL语句可以执行得到结果,然后再把SQL作为字符串执行就好了,
SQL> edi
已写入 file afiedt.buf 1 declare
2 v_name qc.name%type;
3 type cur_type is ref cursor;
4 cur1 cur_type;
5 u_name varchar2(10);
6 u_id varchar2(10);
7 begin
8 select name into v_name from qc where lm_ = 'gtjl' and rownum=1;
9 open cur1 for 'select username,id from ur where username like '||''''||v_name||'%'||'''';
10 fetch cur1 into u_name,u_id ;
11 while cur1%found loop
12 dbms_output.put_line(u_name||' '||u_id);
13 fetch cur1 into u_name,u_id;
14 end loop;
15 close cur1;
16* end;
SQL> /
abc1 1
abc2 2
abc3 3
abc4 4
abc5 5PL/SQL 过程已成功完成。
from ur
where username = 'gbk'
and jtmk name like (select name from qc where lm_ = 'gtjl') || '*%')
如果是一个值,你这样写就可以.
不需要什么动态sql.
select a.*
from ur a,qc b
where username = 'gbk'
and instr(a.jtmkname,b.name)>0 and b.lm_ = 'gtjl'
select *
from ur
where username = 'gbk'
and jtmk_name like (select name || '*%' from qc where lm_ = 'gtjl')注意:%号跟name连在一起,你原先放在子查询后面不行。||只能用在字段上,而不是包含字段的查询结果集
name || '*%'
1
----------
1
SQL>