【问题标题】:Convert varchar to date in sql loader在 sql loader 中将 varchar 转换为日期
【发布时间】:2013-07-15 20:57:45
【问题描述】:

我已经在日期字段中加载了日期,类型是 varchar。

在显示字段时如何在 oracle express/sql 加载器中将日期字段(varchar)转换为日期字段(日期)?

【问题讨论】:

  • 我不确定我是否理解您的要求。您是否在问如何更改永久表中列的数据类型?如何使用 SQL*Loader 将数据加载到表中的DATE 列中?如何将外部表定义从VARCHAR2 更改为DATE?还是别的什么?
  • 我已经加载了 varchar 类型。现在为了与其他数据库进行比较,我需要将数据类型转换为 DATE 以便与其他数据库的字段兼容

标签: sql oracle-sqldeveloper sql-loader


【解决方案1】:

当永久表中有数据时,您不能将其列的数据类型从VARCHAR2 更改为DATE

但是,您可以添加一个新列

ALTER TABLE table_name
  ADD( new_date_column DATE );

移动数据

UPDATE table_name
   SET new_date_column = to_date( old_varchar2_column, format_mask );

删除旧列

ALTER TABLE table_name
  DROP COLUMN old_varchar2_column;

然后将新列重命名为旧列名

ALTER TABLE table_name
  RENAME COLUMN new_date_column TO old_column_name

当然,一旦你这样做了,如果你想再次加载到这个表中,你需要更改你的 SQL*Loader 脚本来将数据转换为DATE

【讨论】:

  • 我不想更改列的任何特征,而只想显示为日期。这是否可能?使用任何函数,如 cast...?
  • @RRR - 我仍然对你在问什么感到困惑。也许您只是想在列上调用 to_date 函数作为比较的一部分(尽管这会相当慢)?
猜你喜欢
  • 1970-01-01
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 2023-03-28
  • 2019-03-13
  • 1970-01-01
相关资源
最近更新 更多