SELECT * FROM EMP E WHERE E.ENAME IN(SELECT CONCAT(CONCAT('''',REPLACE('10001;00026;00025',';',''',''')),'''') FROM DUAL) 这样写不起作用!
解决方案 »
- 关于sqlplus中set newpage 0打印的两个黑框的作用
- asp+oracle 字符过长如何解决?ORA-01704: 字符串文字太长
- oracle浏览器访问企业管理器什么也没有
- oracle 备份问题
- 同个schme下,表与表之间的数据复制(表中有些字段名字不一样),怎么写存储过程??
- sql/plus的问题,请大家帮帮忙!参与者有分。
- 复合查询,请高手帮忙
- 关于RedHat9 + Oracle9i 环境下的.pc编译
- oracle 9i , asp, odbc 问题
- Oracle 8i安装完成后,在DOS窗口输入svrmgrl命令,却得到ORA-12560: TNS :协议适配器错误
- oracle存储过程中有没有表变量?
- 请问这个CASE应用有没有问题
2 v_str varchar2(1000);
3 v_str1 varchar2(1000);
4 --v_str2 varchar2(1000);
5 --v_sql varchar(1000);
6 begin
7 --v_str_1=''';
8 --v_str_2='''';
9 v_str := '1;2;3;4;5';
10 v_str1 := replace(v_str,';',chr(39)||chr(44)||chr(39));
11 v_str := '('||''''||v_str1||''''||')';
12 dbms_output.put_line(v_str);
13 end;
14 /
('1','2','3','4','5')
PL/SQL procedure successfully completed
p_split varchar2 := ',')
--usage: select * from table(strsplit('1,2,3,4,5'))
return strsplit_type
pipelined is
v_idx integer;
v_str varchar2(500);
v_strs_last varchar2(4000) := p_value;begin
loop
v_idx := instr(v_strs_last, p_split);
exit when v_idx = 0;
v_str := substr(v_strs_last, 1, v_idx - 1);
v_strs_last := substr(v_strs_last, v_idx + 1);
pipe row(v_str);
end loop;
pipe row(v_strs_last);
return;end strsplit;SELECT * FROM EMP E WHERE E.ENAME IN (select * from table(strsplit('1;2;3;4;5',';')))