oracle - 使用 Toad 将 Excel 电子表格导入 Oracle

标签 oracle excel import sequence

我正在尝试使用 Toad 将 Excel 电子表格导入 Oracle。问题是我要导入的表有一个主键字段,我使用“sequence”.nextval 来填充正常的存储过程插入。

使用 Toad 导入向导,我尝试将 'table_seq.nextval' 作为表达式输入,但是当我最后执行向导时出现错误:无法将类型的变体 (UnicodeString) 转换为类型 (Double)。

那么是否可以通过 Toad 导入向导使用 sequence.nextval 导入 Excel 数据,还是有更好的方法?

我还考虑了让 Excel 通过启动超出当前表中的种子的种子来生成 key 。但是作为 Oracle 的新手,这会扰乱我为表设置的顺序吗?例如,如果在插入之前,下一个可用 ID 是 500,并且 Excel 中的插入插入的行从 500 到 5000,那么下一次执行该表序列的存储过程是否会尝试使用 500?

提前致谢!

最佳答案

是的,序列将保持在 50,您将得到 primary key violated使用存储过程时出现异常。

那是因为序列没有以任何方式链接到表。并且无法链接。它们是分离的对象。

我看到的最好的方法是使用触发器 on insert for each row这会将 id 设置为 nextval .

代码示例:

CREATE OR REPLACE TRIGGER trg_table_name_set_id
  BEFORE INSERT 
  ON table_name
  FOR EACH ROW
BEGIN

  SELECT table_seq.nextval INTO :new.id FROM DUAL; --id would be the id column in your table

--or, if you are on 11g, simply
--:new.id := table_seq.nextval;

END trg_table_name_set_id;

关于oracle - 使用 Toad 将 Excel 电子表格导入 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841399/

相关文章:

scala - 为什么导入类型类实例不再需要 importcats.implicits._ ?

SQL查找列中的组合

mysql - 是否可以通过单个查询从不同数据库检索数据?

excel - VBA清除下拉列表中的内容

Excel:如何加快查找和替换过程?每个工作簿更改 32,000 个链接

mysql - 从 Oracle 导出到 SQL Server 或 mySQL

ruby-on-rails - Rails CSV 导入 first_or_create

sql - 使用 oracle SQL 按分隔符位置拆分字符串

sql - Oracle 带参数的存储过程

mysql - 如何针对超过 10k 行的 Excel 文档运行 SQL 获取列值