存储过程参数的值不能有逗号? 存储过程有一个参数,如果传入的值是:1,2,3那么在sql中的in后面使用时,系统会自动加上引号,变成:'1,2,3'不知大虾是否有比较简便的方法可以搞定这是问题?谢先! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会有这种问题你是在组合动态sql语句的过程中吗?你必须使用动态sql才能达到你的效果 存储过程中的sql是静态的,只是有几个参数是从外面传给存储过程的,放在sql中的in的括号里面。比如传进来的就是:1,2,3除了用动态sql,是否有别的方法?谢先! 没有什么别的好办法了动态sql很简单的v_count number;begin...str:='select count(1) from tbname where col in('||v_in||')';execute immediate str into v_count;... 你的参数类型是什么的,我用char试了一下,没问题的CREATE OR REPLACE procedure p1(ccc IN char,bbb in char)...dbms_output.put_line(ccc);dbms_output.put_line(bbb);..........sqlplus :execute p1(1,2)12过程成功执行 写错了execute p1(1,2) 他是要传一个参数里面,包括逗号。因为参数是一逗号分隔的,所有ORACLE会加上单引号,加以区分 其实你完全可以到里面在分割,要实现也可以, CREATE OR REPLACE procedure p1(ccc IN char) is begin dbms_output.put_line(ccc); end;PL/SQL procedure successfully completed.SQL> execute p1('1'||chr(44)||'2'||chr(44)||'3');1,2,3PL/SQL procedure successfully completed. 我把原来表空间的数据文件备份了,现在重装系统了,如何挂接表空间数据文件。 如何将ORACLE 9I 中的数据导入8I中?? ★★★★★★★ Oracle 测试带返回游标的存储过程 ★★★★★★★ like id+'%' 能否用到索引 安装时出现问题 急,在线等待~ 数据库清除数据为和占用系统空间反而增大? 如何取当前日期? 不小心将数据库某个表数据delete 调了。怎么能回复? 有奖问答:个位大哥,谁知道什么地方可以免费下载Oracle9i啊,小弟在线等!谢谢! 关于对象-关系型数据库 执行计划的巨大差异 oracle数据导入问题(紧急)
你是在组合动态sql语句的过程中吗?
你必须使用动态sql才能达到你的效果
比如传进来的就是:
1,2,3
除了用动态sql,是否有别的方法?
谢先!
动态sql很简单的
v_count number;
begin
...
str:='select count(1) from tbname where col in('||v_in||')';
execute immediate str into v_count;
...
CREATE OR REPLACE procedure p1(ccc IN char,bbb in char)
...
dbms_output.put_line(ccc);
dbms_output.put_line(bbb);
.....
.....sqlplus :
execute p1(1,2)
1
2过程成功执行
execute p1(1,2)
因为参数是一逗号分隔的,所有ORACLE会加上单引号,加以区分
CREATE OR REPLACE procedure p1(ccc IN char) is
begin
dbms_output.put_line(ccc);
end;
PL/SQL procedure successfully completed.
SQL> execute p1('1'||chr(44)||'2'||chr(44)||'3');
1,2,3PL/SQL procedure successfully completed.