oracle 存储过程拼SQL问题

str_sql:='update app_biz_reconfirm r SET branchid = (SELECT '||bname||' FROM '||tname||' temp WHERE temp.REPORT_ID ='||inywno||') WHERE r.obid = '||inobid;
execute immediate str_sql;

为什么每次执行的时候都报 “xxx” 描述符错误 ;
上面拼的哪里有问题?
bname,tname,inywno,inobid都是临时定义的;

str_sql:='update app_biz_reconfirm r SET branchid = (SELECT '||bname||' FROM '||tname||' temp WHERE temp.REPORT_ID ='''||inywno||''') WHERE r.obid = '''||inobid||''' 1=1';
execute immediate str_sql;

一样是不行..

[code="sql"]str_sql:='update app_biz_reconfirm r SET branchid = (SELECT '||bname||' FROM '||tname||' temp WHERE temp.REPORT_ID ='''||inywno||''') WHERE r.obid = '''||inobid||'''';[/code]

呵呵 还是转移字符的问题吧