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
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代替?