在 oracle 表单 10G 中出现错误,但在 SQL 开发人员中工作

getting error in oracle forms 10G but working in SQL developer

亲爱的,我正在编写一个代码,它在 sqlplus 或 toad 中工作正常,但在 oracle 表单中不能工作,请任何人给我提示我在做什么 worng

    INSERT INTO PROD_CUT_ISSU_MST (TRANS_ID, LOC_ID, DATED, FORM_DEPT_CODE, TO_DEPT_CODE,
                                    FINAL_IND, ISS_NUM, BUNDLE_QTY, COMP_CODE,ACTUAL_DATE)
           VALUES ((select MAX(T.TRANS_ID)+1  from prod_cut_issu_mst t ), 2, TRUNC(SYSDATE),
                                    13, 14, 'N',(prod_validations.get_autobar('PCI', 1,2 )),5,1, TRUNC(SYSDATE));                   

它在 oracle 表单中抛出这个错误,但 plsql 或 toad 工作正常

在期望以下之一时遇到符号“select”:(-+case...

重写为

INSERT INTO prod_cut_issu_mst (trans_id,
                               loc_id,
                               dated,
                               form_dept_code, --> is this really "form"? Not "from"?
                               to_dept_code,
                               final_ind,
                               iss_num,
                               bundle_qty,
                               comp_code,
                               actual_date)
   SELECT MAX (t.trans_id) + 1 trans_id,
          2  loc_id,
          TRUNC (SYSDATE) dated,
          13 form_dept_code,
          14 to_dept_code,
          'N' final_ind,
          prod_validations.get_autobar ('PCI', 1, 2) iss_num,
          5  bundle_qty,
          1  comp_code,
          TRUNC (SYSDATE) actual_date
     FROM prod_cut_issu_mst t;

但是请注意,您所做的很可能是 错误的 并且在 multi-user 环境中迟早会失败,当两个(或更多) ) 用户 select 相同 t.trans_id 并向其添加 1。如果 trans_id 应该是唯一的(例如主键列),则 insert 将对除一个用户(第一个提交的用户)以外的所有用户失败。