我已经到了我一直在玩弄一些东西的地方之一,试图弄清楚为什么它不起作用,并想在这里问我。我目前正在调整批处理过程,该过程涉及创建用于登台的外部表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;
答案 0 :(得分:0)
好吧,如果您发布了表A和B的描述,我们可以自己看到它。现在,我们必须相信您在说什么,即一切都匹配(但是Oracle表示不同意),所以我不知道该说些什么。
另一方面,我了解到
dates = [df_filtered.release_date.min(),wm_director.release_date.min(),wd.loc[7283,'Year'],wd.loc[9125,'Year'],
wd.loc[10127,'Year']]
texts = ['1st movie released','1st movie directed by woman','1st Best Director nomination','Best Director won',
'2nd Best Director Nomination']
fig, ax = plt.subplots(figsize=(14,1))
ax.plot((dates[0],dates[-1]),(0,0),'k',alpha=0.3)
for i, (text,date) in enumerate(zip(texts,dates)):
ax.scatter(date,0,marker='s', s=100,color='crimson')
ax.text(date,0.01,text,rotation=45,va="bottom",fontsize=14)
ax.set_xticklabels([i.year for i in dates])
ax.yaxis.set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.xaxis.set_ticks_position('bottom')
ax.grid('off')
ax.patch.set_facecolor('white')
ax.get_yaxis().set_ticklabels([])
plt.show()
处理事情的方式很差(除非这是快速又肮脏的测试)。我尝试始终命名我正在使用的所有列,无论该操作涉及多少列。正如您所注意到的那样,这似乎也很适合您,所以我建议您继续这样做。