oralce in 查询不能传入字符串

鲁班小匠 2008-07-11 09:56:33
declare
var_catids varchar2(256) default '';
int_pp integer default 0;

begin

var_catids :='1640,1633,1635';
select max(pp) into int_pp from table1 where id in (var_catids);
dbms_output.put_line('int_pp:'||int_pp);
end;

把select max(pp) into int_pp from table1 where id in (var_catids);这语句换成如下就正常了
select max(pp) into int_pp from table1 where id in (1640,1633,1635);

哪位高手帮我看看.
...全文
249 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yong8717464 2008-07-30
  • 打赏
  • 举报
回复
正解
[Quote=引用 2 楼 hebo2005 的回复:]
SQL codedeclare
var_catids varchar2(256) default '';
int_pp integer default 0;
tem_sql varchar(2000);
begin

var_catids :='1640,1633,1635';
temp_sql:='select max(pp) from table1 where id in ('||var_catids||')';
execute immediate temp_sql into int_pp ;
dbms_output.put_line('int_pp:' ¦ ¦int_pp);
end;


你这样去试试看
[/Quote]
LINGO_Tecco 2008-07-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 muzifeng 的回复:]
2楼的如果传入的是字符串类型
可以
var_catids :='''1640'',''1633'',''1635''';
前几天刚刚试验过
[/Quote]
我也想知道为什么就成了三个字符串,怎么证明?请赐教.
allanmorgan 2008-07-11
  • 打赏
  • 举报
回复
同意楼上,用动态sql
hebo2005 2008-07-11
  • 打赏
  • 举报
回复
declare 
var_catids varchar2(256) default '';
int_pp integer default 0;
tem_sql varchar(2000);
begin

var_catids :='1640,1633,1635';
temp_sql:='select max(pp) from table1 where id in ('||var_catids||')';
execute immediate temp_sql into int_pp ;
dbms_output.put_line('int_pp:' ¦ ¦int_pp);
end;

你这样去试试看
hebo2005 2008-07-11
  • 打赏
  • 举报
回复
1640,1633,1635
这是三个字符串
而传入一个varchar,内容是1640,1633,1635
就认是一个字符串,逗号是字符串的一部分,要用动态SQL
doer_ljy 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 muzifeng 的回复:]
2楼的如果传入的是字符串类型
可以
var_catids := ' ' '1640 ' ', ' '1633 ' ', ' '1635 ' ' ';
前几天刚刚试验过
[/Quote]
真的?
代码贴上来瞧瞧?
木鱼儿 2008-07-11
  • 打赏
  • 举报
回复
2楼的如果传入的是字符串类型
可以
var_catids :='''1640'',''1633'',''1635''';
前几天刚刚试验过
木鱼儿 2008-07-11
  • 打赏
  • 举报
回复
2楼的如果传入的是字符串类型
可以
var_catids :='''1640'',''1633'',''1635''';
前几天刚刚试验过
natty_boy 2008-07-11
  • 打赏
  • 举报
回复
2楼正解,不用多说了
xiaotoubaba 2008-07-11
  • 打赏
  • 举报
回复
用动态sql
gh_li 2008-07-11
  • 打赏
  • 举报
回复
学习

17,092

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧