Pesquisando dados de uma tabela usando o procedimento armazenado no oracle passando tablename como um parâmetro

Este procedimento não está funcionando corretament

create or replace procedure bank_search_sp
(
p_tablename in varchar2,
p_searchname in varchar2,
p_bankcode out varchar2,
p_bankname out varchar2,
p_dist_code out number
)
as
v_tem varchar2(5000);
begin
v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || '
where bankname like '''|| p_searchname||'';
execute immediate v_tem into p_bankcode,p_bankname,p_dist_code using p_searchname ;
commit;
end bank_search_sp;

O procedimento está sendo criado, mas não sei o que realmente acontece quando foi executado. Esse é o erro mostrado

ORA-01756: quoted string not properly terminated
ORA-06512: at "PENSIONS.BANK_SEARCH_SP", line 14
ORA-06512: at line 1 

questionAnswers(2)

yourAnswerToTheQuestion