日期:2014-05-17  浏览次数:21752 次

求助大侠:PLS-00103: 出现符号 "."在需要下列之一时
错误信息如下:
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行后面加个分号