用oracle写了个过程。
如下:
create or replace procedure proc_updateGeography1
is
cursor mycursor is select * from PEC_ZONES_ZIP_CODE;
theRow mycursor%rowType;
strWhere varchar2(40);
begin
for theRow in mycursor loop
update company set GEOGRAPHY = theRow.pec_zones_id where zip ike '%'||theRow.zip_code || '%';
end loop;
end;
存储过程中有一个变量 theRow.zip_code
我想用它来作为查询条件,写在like后面,
我在网上查了好多资料,有的说就现在这个方式就可以,
有的说可以在之前先把%号拼装到变量里 如:strWhere := chr(39) || theRow.zip_code || '%' || chr(39);
然后写在like后面也可以了,如:..... like strWhere .....
这两种方式我都试过了,执行正常结束,可是一条都没有更新!!
开始我还以为是表里的数据没有匹配的呢!!然后我就特意加了两条测试数据,最终没有被更新!!!
我都愁死了,已经三天了,一直没有找到好的办法解决!!
这是什么原因啊1????各位老大?????小弟先谢了!!
如下:
create or replace procedure proc_updateGeography1
is
cursor mycursor is select * from PEC_ZONES_ZIP_CODE;
theRow mycursor%rowType;
strWhere varchar2(40);
begin
for theRow in mycursor loop
update company set GEOGRAPHY = theRow.pec_zones_id where zip ike '%'||theRow.zip_code || '%';
end loop;
end;
存储过程中有一个变量 theRow.zip_code
我想用它来作为查询条件,写在like后面,
我在网上查了好多资料,有的说就现在这个方式就可以,
有的说可以在之前先把%号拼装到变量里 如:strWhere := chr(39) || theRow.zip_code || '%' || chr(39);
然后写在like后面也可以了,如:..... like strWhere .....
这两种方式我都试过了,执行正常结束,可是一条都没有更新!!
开始我还以为是表里的数据没有匹配的呢!!然后我就特意加了两条测试数据,最终没有被更新!!!
我都愁死了,已经三天了,一直没有找到好的办法解决!!
这是什么原因啊1????各位老大?????小弟先谢了!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货