首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

A'||i||' into '||sz_readdb(i)||' from o_inapp_v where 病院ID=''医院ID'

2014-05-31 
A'||i||' into '||sz_readdb(i)||' from o_inapp_v where 医院ID''医院ID

A'||i||' into '||sz_readdb(i)||' from o_inapp_v where 医院ID=''医院ID''' 返回为找回任何数据


declare
type sz_readdb_type is table of varchar2(200) index by binary_integer;
i number;
x number;
sqlstr varchar2(2000);
sz_readdb sz_readdb_type;
begin
--sz_readdb.extend;
delete tmp3;
select count(*) into x from o_inapp ;
for i in 10 .. x loop
sqlstr := 'select A'||i||' into '||sz_readdb(i)||' from o_inapp_v where 医院ID=''医院ID''';
--select A||i into sz_readdb(i) from o_inapp where 医院ID='医院ID';
execute immediate sqlstr;
insert into tmp3(医院ID) values(sz_readdb(i));

end loop;
commit;
sz_readdb.delete;
end;


返回 
ORA-01403: 未找到任何数据
ORA-06512: 在 line 13

折腾了我一天。。始终没搞好。。哪位帮我看看问题出在哪。。谢谢
以下是表结构

   大区地区代表医院ID医院名称目标科室医生ID医生医生级别A10A11A12A13A14A15A16A17A18A19A20A21A22A23A24A25
1大区地区代表医院ID医院名称目标科室目标医生代码目标医生姓名目标医生级别 9月1日9月2日9月3日9月4日9月5日9月6日9月7日9月8日9月9日9月10日9月11日9月12日9月13日9月14日9月15日9月16日

[解决办法]
第一:
你医院id查询可能没有数据返回所以报错。
第二:
 sqlstr := 'select A'
[解决办法]
i
[解决办法]
' into '
[解决办法]
sz_readdb(i)
[解决办法]
' from o_inapp_v where 医院ID=''医院ID''';
 execute immediate sqlstr;
这个sql 也是错误的写法。动态sql参数输出不是这么写的,而是:
 sqlstr := 'select A'
[解决办法]
i
[解决办法]
'  from o_inapp_v where 医院ID=''医院ID''';
 execute immediate sqlstr into sz_readdb(i);

ps:sz_readdb(i)为啥不直接用个varchar2代替?

热点排行