pl / sql-to_date不与执行立即参数
|
我想能够像下面这样执行我的下面的proc:
exec procname(\'29-JAN-2011\');
proc代码是:
PROCEDURE procname(pardate VARCHAR2) IS
vardate DATE := to_date(pardate, \'DD-MON-YYYY\');
SQLS VARCHAR2(4000);
BEGIN
SQLS := \'SELECT cola, colb
FROM tablea
WHERE TRUNC(coldate) = TRUNC(TO_DATE(\'\'\'||pardate||\'\'\',\'\'DD/MON/YYYY\'\'))\';
EXECUTE IMMEDIATE SQLS;
END;
它不断抛出错误:
ORA-00904:\“ JAN \”:无效的标识符。
它可以编译,但是在运行以下命令时会引发错误:
EXEC procname(\'29-JAN-2011\');
没有找到相关结果
已邀请:
2 个回复
芭隘的盘石
使用绑定变量指定动态SQL语句并使用USING语法执行它会更有效率。注意,我们仍然必须选择一些变量。
俯乡骚钵皆
时使用了两种不同的表示法。我认为其中一个(第二个)是错误的。