中传递字符值我有一个删除程序,该程序以表名和某些值从该表中删除记录,因此我创建了一个执行immediate的过程,它正在形成删除通过参数和删除进行查询。在程序中使用execute立即执行DML,并在参数
但是当过我传递的char值的参数是越来越错误:
invalid identifier
与该字符值了单引号形成查询。请让我知道如何在程序中传递char值以正确形成字符串。
下面是具体的步骤:
CREATE OR replace PROCEDURE Prd_delete(p_tbl_name IN VARCHAR2,
p_sys VARCHAR2,
p_b_id VARCHAR2,
p_c_date NUMBER)
IS
dlt_query VARCHAR2(200);
BEGIN
dlt_query := 'delete from '
||p_tbl_name
||' where system='
||p_sys
|| ' And batch_id='
||p_b_id
|| ' And cobdate='
||p_c_date;
--dbms_output.put_line(dlt_query);
EXECUTE IMMEDIATE dlt_query;
END;
/
下面是运行命令:
exec prd_delete ('TBL_HIST_DATA','M','N1',20141205);
下面是错误:
ORA-00904:"N1" invalid identifier.
如何正确地传递这种价值?请建议。
oracle数据库我需要像这样..和cobdate是一个数字数据类型的设计。我不能将其更改为DATE数据类型。无论如何感谢Ans。@ lalit – sabya
@sabyasachikar,如果它解决了您的问题,请将其标记为已回答。 –