【问题标题】:OracleBulkCopy from a text file - how to set primary keyOracleBulkCopy 从文本文件 - 如何设置主键
【发布时间】:2012-11-15 16:25:28
【问题描述】:

我正在尝试使用 OracleBulkCopy 将大型分隔文件读入单个表。主键是列 ID,定义为 number(20,0),我相信,nHibernate 通常在插入时通过序列递增。如果我通过 odp.net 使用 oracleBulkCopy,如何确保 ID 在插入时递增,并且在其他人通过应用程序插入时不会出现并发问题?

【问题讨论】:

    标签: c# .net database oracle odp.net


    【解决方案1】:

    您需要在 oracle 中创建一个序列,以便它可以自动增加您的 id

    创建序列 MY_TABLE_SEQ 以 1 个 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER 开始递增;

    在插入 MY_TABLE 之前创建触发器 MY_TABLE_INSERT_TRIGGER 每一行都引用新的和旧的一样 开始 从 DUAL 中选择 MY_TABLE_SEQ.NEXTVAL INTO :NEW.MY_ID_FIELD; 结束;

    【讨论】:

      【解决方案2】:

      答案不正确。

      使用 OracleBulkCopy 时需要禁用触发器。

      http://ora-26086.ora-code.com/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2019-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多