从访问 ORACLE 中插入选择

Posted

技术标签:

【中文标题】从访问 ORACLE 中插入选择【英文标题】:INSERT INTO SELECT FROM ACCESS TO ORACLE 【发布时间】:2012-04-30 22:28:23 【问题描述】:

我在 Access 中有一个名为 TEST_DATE1 的表,其列 TEST_DATE 是一个字符串数据类型,记录看起来像 20080130。yyyymmdd

我在 Oracle 中有一个名为 TEST 的表,其列 TEST_DATE 是 DATE 数据类型,我希望记录看起来像 2008/01/30 yyyy/mm/dd。

我有两个表链接,当我通常在 Access 和 Oracle 之间更新表时,我通常会做一个

INSERT INTO TEST
SELECT *
FROM TEST_DATE1;

如何使用 INSERT INTO SELECT 将字符串转换为日期

我试过了

INSERT INTO TEST
(SELECT TO_DATE(TEST_DATE, 'yyyy/mm/dd'))
FROM TEST_DATE1;

谢谢!

【问题讨论】:

当你说你已经“尝试”了这个 sql,你收到了什么结果或错误? 但是您在 test_date1 中的格式是 'YYYMMDD',对吗? (减去斜线)。听起来您正在尝试将两个单独的步骤结合起来。您要做的第一件事是从旧格式转换。它将作为日期存储在 Oracle 中,您可以从该表中选择并在检索时获取您想要的格式。 【参考方案1】:

要将记录移动到 Oracle,将字符串转换为日期:

INSERT INTO test (test_date)
SELECT TO_DATE(test_date, 'YYYYMMDD')
FROM test_date1

一旦它在 Oracle 中存储为日期,您就可以以任何您喜欢的格式检索它:

SELECT TO_CHAR(test_date, 'YYYY/MM/DD') as test_date
FROM test;

【讨论】:

您的链接是如何定义的?您在什么环境中执行 SQL? @user1307149 我假设您的数据库链接在 Oracle 中,而这正是您运行 SQL 的地方。由于我不是 Access 专家,除非您想从 Oracle 方面做,否则我无法真正帮助您。 我的数据库链接是从 Access 到 Oracle,我正在 Access 中执行 sql 查询 日期作为字符串存储在 Access 中,我正在尝试将它们移动到 oracle DATE 列。 我知道了:插入测试 (TEST_DATE) SELECT CDate(Mid(TEST_DATE, 5,2) & "/" & Right(TEST_DATE, 2) & "/" & Left(TEST_DATE, 4 )) FROM TEST_DATE1;

以上是关于从访问 ORACLE 中插入选择的主要内容,如果未能解决你的问题,请参考以下文章

从一个表中选择,插入另一个表 oracle sql 查询

使用函数调用从选择中插入到表的 Oracle 中的性能

如何在Oracle中添加一个策略,用户可以从表中选择所有数据,并且只能插入、更新、删除有条件的数据

从访问数据库中选择表并在c#上插入sql多个表

Oracle中的多行插入查询(从一张表中选择多行并插入到另一张表中[重复]

Oracle SQL:将选择从一个表插入另一个表,其中用户有多个带有订单号的条目