首页 > 解决方案 > PL/SQL 语句被忽略,SQL 语句被忽略

问题描述

我正在尝试使用 tomcat 8.5 构建网络。并将数据库也与它连接起来。

我已经使用 SQL 定义了该过程,以便将一些数据从 Web 插入到数据库中。

CREATE OR REPLACE PROCEDURE applyInsert02(cid IN VARCHAR2
                                         ,cidno IN NUMBER
                                         ,sid IN VARCHAR2
                                         ,aid IN VARCHAR2
                                         ,weeknum IN VARCHAR2
                                         ,pstatus IN VARCHAR2
                                         ,isprocessed IN VARCHAR2
                                         ,result OUT VARCHAR2)
IS
  nCnt NUMBER;
BEGIN
  result:='';

  INSERT INTO processed (c_id
                        ,c_id_no
                        ,s_id
                        ,a_id
                        ,week_num
                        ,p_status
                        ,is_processed)
  values (cid
         ,cidno
         ,sid
         ,aid
         ,weeknum
         ,p_status
         ,isprocessed);
  COMMIT;
  result:="done.";
END;

这就是我事先制作 PROCESSED 实体的方式。

CREATE TABLE processed(c_id      VARCHAR2(10)
                      ,c_id_no   NUMBER(1)
                      ,s_id      VARCHAR2(10)
                      ,a_id      VARCHAR2(10)
                      ,week_num  VARCHAR2(10)
                      ,p_status  VARCHAR2(10)
                      ,is_processed VARCHAR2(10)
                      ,CONSTRAINT pro_pk PRIMARY KEY (c_id,c_id_no,s_id,a_id)
                      ,CONSTRAINT p_a_id_fk FOREIGN KEY (s_id,c_id,c_id_no,a_id) REFERENCES attendance(s_id,c_id,c_id_no,a_id)
);

这是我遇到的错误:

8/1 PL/SQL:忽略 SQL 语句
8/119 PL/SQL:ORA-00984:
10/1 PL/SQL:忽略语句

它告诉我行和列,但我无法弄清楚问题出在哪里。

标签: oracleplsqlsqlplus

解决方案


两个错误:

    weeknum,
    pstatus,            --> not p_status
    isprocessed
  );

  COMMIT;
  result := 'done.';    --> single quotes, not double
END;
/

推荐阅读