从表中删除数据-oracle PLS-00357错误

从表中删除数据-oracle PLS-00357错误,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,我使用下面的代码根据作为参数传入的天数从表中删除数据Tablename、DateColumnName和Numberofdays是参数 EXECUTE IMMEDIATE 'DELETE FROM' || UPPER (TRIM (TabName)) || ' WHERE' || TRUNC(DATECOLUMN) || '<= TRUNC(SYSDATE) - ' || NUMBEROFDAYS ; executeimmediate'DELETE FROM'| | UPPER(TR

我使用下面的代码根据作为参数传入的天数从表中删除数据
Tablename、DateColumnName和Numberofdays
是参数

  EXECUTE IMMEDIATE 'DELETE FROM' || UPPER (TRIM (TabName)) || ' WHERE' || TRUNC(DATECOLUMN)  || '<= TRUNC(SYSDATE) - ' || NUMBEROFDAYS ;

executeimmediate'DELETE FROM'| | UPPER(TRIM(TabName))| |'WHERE'| | | TRUNC(DATECOLUMN)| |'打印您试图执行的语句,以确保它是您认为的语句。从这里看,它可能缺少一些空格。您只需在
From
和引号之间添加一个额外的空格:
“DELETE From”| |……
;和
WHERE
和引号:
“WHERE”|
;2) 这里真的不需要使用
UPPER()
函数;3) 在这种情况下最好使用绑定变量:
“谢谢Nicholas。我试过。。同样的错误。立即执行'DELETE FROM'| |(TRIM(TabName))| |'WHERE'| | TRUNC(DATECOLUMN)| | |'我解决了这个问题,就像我以前调用proc的方式一样(TabName,DDATE)-我只是在proc('TabName','DDATE')中添加了引号,谢谢Nicholos和Mustacio