Java 匿名plsql块中的列索引无效

Java 匿名plsql块中的列索引无效,java,oracle,plsql,Java,Oracle,Plsql,当我尝试在该查询的\u cnt\u date中设置参数时,我得到了一个无效的列索引: public static final String CONTEXT = "DECLARE in_cnt_date DATE := TO_DATE('&'); " + " hv_cnt_id NUMBER := 0; " + " BEGIN DBMS_OUTPUT.ENABLE (NULL); " + " INSERT INTO dt_contexts (CNT_ID, CNT_CONTEXT, CNT

当我尝试在该查询的\u cnt\u date中设置参数
时,我得到了一个
无效的列索引

public static final String CONTEXT = "DECLARE in_cnt_date DATE := TO_DATE('&'); " +
" hv_cnt_id NUMBER := 0; " +
" BEGIN DBMS_OUTPUT.ENABLE (NULL); " +
" INSERT INTO dt_contexts (CNT_ID, CNT_CONTEXT, CNT_TYPE, CNT_SOURCE, CNT_COMMENT, CNT_DATE, CNT_DATE_INSERT, CNT_DATE_UPDATE) VALUES (0, 'EPE_CONTEXT', 'ROUTE', 'bdd', 'Built from ROUTE', in_cnt_date, SYSDATE, SYSDATE); " +
" SELECT SEQ_DT_CNT_ID.CURRVAL INTO hv_cnt_id FROM DUAL; " +
" dbms_output.put_line(hv_cnt_id); " +
" EXCEPTION WHEN OTHERS THEN RAISE ; END;";
参数的设置:

CallableStatement cs = null;
    ResultSet rs = null;
    int contextId = 0;
    try {
        conn.setAutoCommit(false);
        cs = conn.prepareCall(CONTEXT);
        cs.setDate(1, (java.sql.Date) Route.datePrf);

您能帮忙吗?

您必须输入一个字符数据类型以更新函数

请参考链接


您必须为to_DATE函数输入字符数据类型

请参考链接


您必须为to_DATE函数输入字符数据类型

请参考链接


您必须为to_DATE函数输入字符数据类型

请参考链接


您当前的语句没有任何绑定变量,因此当您尝试绑定索引1时,会出现此错误。绑定变量占位符是问号,而不是符号,不应引用:

"DECLARE in_cnt_date DATE := TO_DATE(?); " +
但是您正在使用
日期设置它,因此不需要
TO_Date()
调用:

"DECLARE in_cnt_date DATE := ?; " +

您当前的语句没有任何绑定变量,因此当您尝试绑定索引1时,会出现此错误。绑定变量占位符是问号,而不是符号,不应引用:

"DECLARE in_cnt_date DATE := TO_DATE(?); " +
但是您正在使用
日期设置它,因此不需要
TO_Date()
调用:

"DECLARE in_cnt_date DATE := ?; " +

您当前的语句没有任何绑定变量,因此当您尝试绑定索引1时,会出现此错误。绑定变量占位符是问号,而不是符号,不应引用:

"DECLARE in_cnt_date DATE := TO_DATE(?); " +
但是您正在使用
日期设置它,因此不需要
TO_Date()
调用:

"DECLARE in_cnt_date DATE := ?; " +

您当前的语句没有任何绑定变量,因此当您尝试绑定索引1时,会出现此错误。绑定变量占位符是问号,而不是符号,不应引用:

"DECLARE in_cnt_date DATE := TO_DATE(?); " +
但是您正在使用
日期设置它,因此不需要
TO_Date()
调用:

"DECLARE in_cnt_date DATE := ?; " +
这看起来和你的一样这看起来和你的一样这看起来和你的一样这看起来和你的一样