从表中删除数据-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