Oracle直接加载似乎会产生奇怪的结果

标签 oracle oracle10g

自从我使用压缩表将加载器从 direct=false 切换到 direct=true 那天起,我在 Oracle 10g 数据库中得到了非常奇怪的结果..

例如,当我在加载程序之后进行类似的查询时:

从 mytable 中选择 *,其中月份为空

我没有得到答案..

但是当我查询特定行时 从 mytable 中选择 *,其中 id = 123 出现的行有一个“月”列 (vharchar2(10)),该列为空! 我从来没有见过这个..

而且这只发生在我的 200000 多行表中的几行..

你知道会发生什么吗?

我已经切换回 direct=false 并且运行正常..不再出现奇怪的行为.. 我能做些什么 ?测试?

谢谢

最佳答案

也许您的列不为空,但包含不可打印的字符。您可以对列进行转储吗,即:

SQL> select rownum, dump(a) from test;

    ROWNUM DUMP(A)
---------- ---------------------------------
         1 NULL
         2 Typ=1 Len=1: 0

这里第一行有一个 NULL 值,而第二行有一个非空字符 (CHR(0))。

您可以在数据库上运行以下查询来查看您的列是否确实为 NULL:

select dump(month) from mytable where id = 123

关于Oracle直接加载似乎会产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023388/

相关文章:

database - 将 oracle 数据库表与自定义类型的表连接起来

sql - 回车 Oracle 10g SQL

sql - 在 SQL Developer/Oracle 10g 中插入缺失值

sql - 如何将 SELECT 查询的结果表存储在变量中?

sql - 将行转为列 ORACLE SQL

sql - 挑战 SQL 来查找复杂分组中的先前记录

oracle - USER() 和 SYS_CONTEXT ('USERENV' ,'CURRENT_USER' 有什么区别?

oracle10g - 如何使用where子句向表中插入记录

java - JDBC-ORA-01861 : literal does not match format string 01861

sql - 甲骨文 SQL : Updating a column with SUM query of another table