oracle - Oracle 的全部插入与按列插入的功能
问题描述
我已经到了一个我一直在玩弄一些东西的地方,试图弄清楚为什么它不起作用,并想我会在这里问。我目前正在对批处理进行调整,该批处理涉及创建用于暂存的外部表 A,然后将数据从该表传输到表 B 以进行进一步处理。
在之前的批处理中有一个步骤来加载所有数据,它是这样的:
INSERT INTO TABLE B SELECT * FROM TABLE A
在 Oracle Developer 中批量运行此语句并在其外部运行时,我收到以下错误:
Run query ORA-00932: inconsistent datatypes: expected DATE got NUMBER
我逐行进行了调整,并确保我拥有正确的数据类型。我还尽我所能检查了数据本身,据我所知,这似乎也很正常。为了找出可能出现错误的单个字段,我尝试一次将数据从表 A 加载到表 B 中...这样做我没有收到任何让我感到震惊的错误。如果我使用下面的 SQL 并单独列出所有字段,则所有数据的负载都可以完美运行。有人可以解释为什么会这样吗?以下函数是否执行前一个不执行的内部 Oracle 工作?
insert into TABLE B (
COLUMN_ONE,
COLUMN_TWO,
COLUMN_THREE
.
.
.)
select
COLUMN_ONE,
COLUMN_TWO,
COLUMN_THREE
.
.
.
from TABLE A;
解决方案
好吧,如果您发布表 A 和 B 的描述,我们可以自己看到。就像现在一样,我们必须相信你所说的,即一切都匹配(但 Oracle 不同意),所以我不知道该说什么。
另一方面,我了解到使用
INSERT INTO TABLE B SELECT * FROM TABLE A
是一种糟糕的处理方式(除非这是一个快速而肮脏的测试)。我总是尝试为我正在使用的所有列命名,无论其中有多少列参与了该操作。正如您所注意到的,这似乎对您也很有效,所以我建议您继续这样做。
推荐阅读
- angular - ngrok 不适用于浏览器中的路径(Angular Webserver)
- azure - Azure ML Studio ML Pipeline - 异常:未找到临时文件
- c# - 将自定义字体加载到控制台 C# .Net Framework
- reactjs - 状态改变时,下一个 JS 不会重新渲染元素
- microsoft-teams - microsoft-teams:我们如何更新所有用户的应用程序?缺乏功能加上问题
- openssl - 包含 openssl 时,cgo CFLAGS 不起作用
- utf-8 - Linux - GREP 打印带有特殊字符的行
- javascript - 关闭选项卡时不会调用 onbeforeunload
- java - 需要帮助来理解计数排序排序算法的实现
- python - 循环 smtp python 时更改电子邮件凭据