约束违反了?

时间:2016-04-25 11:55:31

标签: sql vb.net oracle

找出造成错误的原因时遇到一些麻烦。我已经包含了代码,错误以及我在查看表约束选项卡时看到的内容。我一直在网上搜索并尝试建议,但没有任何效果。我不确定我做错了什么,所以希望有人可以帮助我一点推动或指出我正确的方向。谢谢。

enter image description here

        STSQL = "insert into mpcs.shop_inv_orders"
        STSQL = STSQL & " ("
        STSQL = STSQL & "ORDER_ID,"
        STSQL = STSQL & "ORDER_ITEM_NO,"
        STSQL = STSQL & "INV_TYPE,"
        STSQL = STSQL & "MTI_PART_NO,"
        STSQL = STSQL & "DATE_ORDERED,"
        STSQL = STSQL & "DATE_REQUIRED,"
        STSQL = STSQL & "QUANTITY,"
        STSQL = STSQL & "EMPLOYEE_ID,"
        STSQL = STSQL & "MACHINE_ID,"
        STSQL = STSQL & "COMMENTS,"
        STSQL = STSQL & "JOB_NO,"
        STSQL = STSQL & "PROCESS_PLAN_ID,"
        'STSQL = STSQL & "ACCOUNT_NO"
        STSQL = STSQL & "DESTINATION,"
        STSQL = STSQL & "COMPLETED,"
        STSQL = STSQL & "REQUEST_NO"
        STSQL = STSQL & ") values ("

        STSQL = STSQL & "'" & UCase(varOrderID) & "'," 'ORDER_ID
        STSQL = STSQL & "'" & UCase(Item) & "'," 'ORDER_ITEM_NO
        STSQL = STSQL & "'" & UCase(InvType) & "'," 'INV_TYPE
        STSQL = STSQL & "'" & UCase(Mtipartno) & "'," 'MTI_PART_NO

        STSQL = STSQL & "to_date(to_char(sysdate,'DD-MON-YYYY HH:MI:SS PM'),'DD-MON-YYYY HH:MI:SS PM')," 'DATE_ORDERED
        STSQL = STSQL & "to_date('" & Format(dateneed.Value, "dd-MMMM-yyyy") & "','DD-MON-YYYY')," 'DATE_REQUIRED

        STSQL = STSQL & "'" & UCase(Quantity) & "'," 'QUANTITY
        STSQL = STSQL & "'" & UCase(cboEmployee.SelectedValue) & "'," 'EMPLOYEE_ID
        STSQL = STSQL & "'" & UCase(MachID) & "'," 'MACHINE_ID
        STSQL = STSQL & "'" & UCase(TextBox2.Text) & "'," 'COMMENTS
        STSQL = STSQL & "'" & UCase(Jobno) & "'," 'JOB_NO
        STSQL = STSQL & "'" & UCase(ProcPlanID) & "'," 'PROCESS_PLAN_ID
        'STSQL = STSQL & "'" & UCase(AcctNo) & "'," 'ACCOUNT_NO
        STSQL = STSQL & "'" & UCase(ComboBox2.SelectedText) & "'," 'DESTINATION
        STSQL = STSQL & "'" & 0 & "'," 'COMPLETED
        STSQL = STSQL & "'" & UCase(ReqNo) & "'" 'REQUEST_NO
        STSQL = STSQL & ")"

enter image description here

3 个答案:

答案 0 :(得分:0)

试试这个,Order_Id是主键,因此无法手动添加,

STSQL = "insert into mpcs.shop_inv_orders"
STSQL = STSQL & " ("           
STSQL = STSQL & "ORDER_ITEM_NO,"
STSQL = STSQL & "INV_TYPE,"
STSQL = STSQL & "MTI_PART_NO,"
STSQL = STSQL & "DATE_ORDERED,"
STSQL = STSQL & "DATE_REQUIRED,"
STSQL = STSQL & "QUANTITY,"
STSQL = STSQL & "EMPLOYEE_ID,"
STSQL = STSQL & "MACHINE_ID,"
STSQL = STSQL & "COMMENTS,"
STSQL = STSQL & "JOB_NO,"
STSQL = STSQL & "PROCESS_PLAN_ID,"
'STSQL = STSQL & "ACCOUNT_NO"
STSQL = STSQL & "DESTINATION,"
STSQL = STSQL & "COMPLETED,"
STSQL = STSQL & "REQUEST_NO"
STSQL = STSQL & ") values ("  

STSQL = STSQL & "'" & UCase(Item) & "'," 'ORDER_ITEM_NO
STSQL = STSQL & "'" & UCase(InvType) & "'," 'INV_TYPE
STSQL = STSQL & "'" & UCase(Mtipartno) & "'," 'MTI_PART_NO

STSQL = STSQL & "to_date(to_char(sysdate,'DD-MON-YYYY HH:MI:SS PM'),'DD-MON-YYYY HH:MI:SS PM')," 'DATE_ORDERED
STSQL = STSQL & "to_date('" & Format(dateneed.Value, "dd-MMMM-yyyy") & "','DD-MON-YYYY')," 'DATE_REQUIRED

STSQL = STSQL & "'" & UCase(Quantity) & "'," 'QUANTITY
STSQL = STSQL & "'" & UCase(cboEmployee.SelectedValue) & "'," 'EMPLOYEE_ID
STSQL = STSQL & "'" & UCase(MachID) & "'," 'MACHINE_ID
STSQL = STSQL & "'" & UCase(TextBox2.Text) & "'," 'COMMENTS
STSQL = STSQL & "'" & UCase(Jobno) & "'," 'JOB_NO
STSQL = STSQL & "'" & UCase(ProcPlanID) & "'," 'PROCESS_PLAN_ID
'STSQL = STSQL & "'" & UCase(AcctNo) & "'," 'ACCOUNT_NO
STSQL = STSQL & "'" & UCase(ComboBox2.SelectedText) & "'," 'DESTINATION
STSQL = STSQL & "'" & 0 & "'," 'COMPLETED
STSQL = STSQL & "'" & UCase(ReqNo) & "'" 'REQUEST_NO

答案 1 :(得分:0)

在Oracle中,您可以使用序列来获取递增ID。

INSERT INTO someTable ( yourSequence.NEXTVAL, ... )

在此处阅读详细信息:
http://www.techonthenet.com/oracle/sequences.php

答案 2 :(得分:0)

原来我得到了错误的数据库。我正在查看2个不同的来源。所以,每个人都是对的。感谢大家的帮助,它确实引导我在其他地方寻找发现这一点。