错误信息如下:
PROCEDURE SCOTT.SP_FORMATDATE 编译错误
错误:PLS-00103: 出现符号 "."在需要下列之一时:
* & = - + ; < / > at in is
mod remainder not rem <an exponent (**)> <> or != or ~= >= <=
<> and or like like2 like4 likec between || member
submultiset
符号 "*在 "." 继续之前已插入。
行:7
文本:strsql:='update '||v_tblnm||' SET launchdate =replace(launchdate,'.','')';
错误:PLS-00103: 出现符号 "END"在需要下列之一时:
. ( * @ % & = - + ; < / >
at in is mod remainder not rem return returning
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between into using || multiset bulk member
submultiset
符号 ";在 "END" 继续之前已插入。
行:11
文本:end
create or replace procedure sp_formatdate(
i_tblname varchar2)is
v_tblname varchar2;
v_strsql varchar2;
v_strslct varchar2;
begin
v_tblname:=i_tblname;
v_strslct:='select launchdate from '||v_tblnm;
strsql:='update '||v_tblnm||' SET launchdate =replace('||v_strslct||','.','')';
--update tb_dw_tempdata set launchdate=replace(launchdate,'.',''); --修改起飞日期,将‘.’去掉
execute immediate strsql
--commit;
end
end sp_formatdate;
存储过程 sql
------解决方案--------------------
14行end后面没有分号。
------解决方案--------------------
strsql:='update '
------解决方案--------------------
v_tblnm
------解决方案--------------------
' SET launchdate =replace('
------解决方案--------------------
v_strslct
------解决方案--------------------
',''.'','''')';
另外 14行后面加个分号