这是我写的一个函数
create or replace function fun_hd_translate_Spec_by_bar
(
p_cSpec_name in varchar2,p_cTableName in varchar2
)
/*将规格名称转换为规格编号*/
return varchar2
as
v_cResult varchar2(10000);
begin
execute immediate 'select
stritemcode
from
'||p_cTableName||'.item where stritemname='||p_cSpec_name into v_cResult;
return v_cResult;
end fun_hd_translate_Spec_by_bar;在存储过程里调用此函数获得函数返回值,并且将函数返回值和传入参数一并插入到另外一个表,发现这样一个问题
在调用此函数fun_hd_translate_Spec_by_bar时 参数p_cSpec_name 必须加"'" 不加引号则无法调用 另外加引号调用之后
在新增插入的另外一个表中将插入"'" 很困惑 不知为什么会将"'"插入到新表
还有使用replace函数能不能在我调用完毕之后替换掉"'"
请问有没有别的办法让我不用在参数前后增加"'",谢谢大家
create or replace function fun_hd_translate_Spec_by_bar
(
p_cSpec_name in varchar2,p_cTableName in varchar2
)
/*将规格名称转换为规格编号*/
return varchar2
as
v_cResult varchar2(10000);
begin
execute immediate 'select
stritemcode
from
'||p_cTableName||'.item where stritemname='||p_cSpec_name into v_cResult;
return v_cResult;
end fun_hd_translate_Spec_by_bar;在存储过程里调用此函数获得函数返回值,并且将函数返回值和传入参数一并插入到另外一个表,发现这样一个问题
在调用此函数fun_hd_translate_Spec_by_bar时 参数p_cSpec_name 必须加"'" 不加引号则无法调用 另外加引号调用之后
在新增插入的另外一个表中将插入"'" 很困惑 不知为什么会将"'"插入到新表
还有使用replace函数能不能在我调用完毕之后替换掉"'"
请问有没有别的办法让我不用在参数前后增加"'",谢谢大家
(
p_cSpec_name in varchar2,p_cTableName in varchar2
)
/*将规格名称转换为规格编号*/
return varchar2
as
v_cResult varchar2(10000);
begin
execute immediate 'select
stritemcode
from
'||p_cTableName||'.item where stritemname='''||p_cSpec_name||'''' into v_cResult;
return v_cResult;
end fun_hd_translate_Spec_by_bar;
P_CTABLENAME IN VARCHAR2) RETURN VARCHAR2 AS
V_CRESULT VARCHAR2(200);
BEGIN
v_cresult:='select ename from ' || P_CTABLENAME ||' where ename=''' || P_CSPEC_NAME||'''';
EXECUTE IMMEDIATE v_cresult INTO V_CRESULT;
RETURN V_CRESULT;
END;
/SELECT xx('SMITH','EMP') FROM dual;
输出:
SMITH