问题标签 [external-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
300 浏览

hive - 将数据从外部表复制到数据库

我在外部表中有数据。现在我将数据从外部表复制到数据库中新创建的表中。什么样的表将是数据库中的表?它是托管表还是外部表?我需要你的帮助来理解这个问题背后的概念

谢谢, 马丹·莫汉 S

0 投票
0 回答
40 浏览

database - 编写相同的外部表查询以在 Hive 的一个实例内的不同数据库中使用

我需要为 Hive 创建一个外部表命令。该命令还要求您指定位置。

问题是同一命令将在一个 Hive 实例内的多个数据库中使用。

有没有办法在查询中也包含 Hive 数据库名称?或者其他一些方法也可以。

问候,

0 投票
1 回答
2787 浏览

oracle - 外部表在从文件读取时截断尾随空格

我正在尝试将文件内容加载到外部表中。执行此操作时,尾随空格会被截断。

例如,B代表一个空格,我的文件有:

我的外部表显示为:

我也希望文件加载空白。如何阻止它删除尾随空格?

当前问题是:

如果文件有:

“这是一个测试值

"

问题

0 投票
1 回答
4841 浏览

oracle - removing EOL delimiter from inserting into external table -oracle

I have included notrim for rowdata column in external table as suggesterd by Alex (This is a continuation of this question,),

But now End of Line character is also appending at the rowdata column, I mean , End of line (CR-LF) is also joins at the end of rowdata.

I don't want to use substr() or translate() , since file size is around 1GB,

My external table creation process :

Is there any other paramenter I can add , to remove the End-of-line character. Thanks.

EDIT 1:

My file :

Some first line with spaces at end
Some second line with spaces at end

My Ext table :

to be more clear , I will explain in java (when I assign column values to string , it is something like below),

without notrim :

with notrim:

what I want it to be :

the delimiter is also a part of rowdata, since no trim is specified.

EDIT2:

Line-Endings : CRLF

Platform :

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit

Production PL/SQL Release 12.1.0.1.0 - Production

"CORE 12.1.0.1.0 Production" TNS for Solaris: Version 12.1.0.1.0 -

Production NLSRTL Version 12.1.0.1.0 - Production

SELECT DUMP(ROW_DATA,1016) FROM EXT_TABLE WHERE ROWNUM = 1;

Typ=1 Len=616 CharacterSet=AL32UTF8: 41,30,30,30,30,30,30,30,30,30,30,31,30,30,30,30,37,36,36,36,44,30,30,30,30,31,32,35,30,38,31,36,32,35,30,38,31,36,31,33,34,37,30,39,44,42,20,41,30,36,31,30,30,30,30,30,30,30,30,30,30,30,30,32,30,30,4d,59,52,20,32,5a,20,30,31,36,30,30,30,31,32,31,32,33,34,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,52,49,42,46,50,58,30,30,30,31,30,30,30,30,30,30,30,30,31,30,36,32,38,30,31,30,32,30,30,47,20,20,20,20,53,20,20,30,30,30,30,30,30,30,30,30,30,30,20,20,20,20,20,20,20,4e,39,32,37,32,20,20,20,20,20,20,30,30,30,30,30,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,30,30,39,39,38,54,45,53,54,52,52,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,54,45,53,54,4f,50,44,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,54,45,53,54,54,52,41,4e,53,49,44,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,54,45,53,54,52,52,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,54,45,53,54,4f,50,44,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,54,45,53,54,54,52,41,4e,53,49,44,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,d

Len should be 615

0 投票
1 回答
4620 浏览

sql-server - 无法从 Azure SQL 外部表运行“INSERT INTO”

在我的 Azure SQL DB 中,我有一个外部表 - 我们称之为tableName_origData- 我还有另一个表,我们将其称为tableName.

tableName是使用CREATE从(在其原始位置)生成的脚本创建的tableName_origData,因此我可以确定所有列类型都是相同的。

但是,当我跑步时

我遇到以下异常:

大对象列支持仅限于 nvarchar(max) 数据类型。

就我对 Azure SQL 数据类型的理解而言,我没有比 NVARCHAR(MAX) 更大的东西。此外,该消息暗示支持 NVARCHAR(MAX) 我可以看到相同的脚本适用于包含 NVARCHAR(MAX) 的其他表。

谁能更好地解释此异常的原因以及我可能需要做什么才能将其数据插入到相同的表中?

以下是表中使用的所有列类型的列表:

BIGINTx 3
NCHAR(20)x 1
NVARCHAR(45)x 5
NVARCHAR(100)x 14
NVARCHAR(MAX)x 10

0 投票
1 回答
282 浏览

windows - 使用 Oracle 外部表访问 CSV 文件的创建日期

情况

我有一个名为 inventory.csv 的 CSV 文件,位于 Oracle 数据库服务器(2008 R2 Enterprise Edition Windows Server)上。此 CSV 文件用作 Oracle 外部表。

每小时,一个计划任务(Windows 任务计划程序)执行一个 .bat 文件,该文件复制更新版本的 inventory.csv,覆盖原始文件。

然后数据由报告应用程序使用。

问题

使用inventory.csv 中数据的应用程序无法知道上次更新数据的时间。

理想情况下,我希望“最后更新日期”可以作为表格中的一列访问。

一种可能的解决方案是在单独的文件中触发当前日期/时间的日志记录,然后也将其作为外部表引用。然而,这个解决方案有太多的移动部件,如果可能的话,我更喜欢更简单的东西。

我知道 CSV 文件本身知道它是什么时候创建的……我想知道 Oracle 外部表是否有任何方法可以从 CSV 文件属性中读取“创建”日期?

还是有其他想法?

0 投票
0 回答
655 浏览

sql-server - 无法将数据从外部表复制到外部表的精确副本

在 SQL Azure DB 中构建测试 DB 环境时,我使用从原始原型 DB 生成的 CREATE TABLE 脚本动态生成新 DB。

其中一些表需要来自原型数据库的数据,因此我为每个表创建一个外部表(引用原型数据库中的表),然后运行一个 INSERT INTO 查询,该查询从外部表中获取数据并将其插入到确切的副本中在测试数据库中。

这里的重点是新表和外部表都是使用原型数据库中内置的脚本动态生成的;因此,新表和外部表应该是原型数据库中的精确副本。

但是,对于其中一张表,我遇到了异常

大对象列支持仅限于 nvarchar(max) 数据类型。

有问题的表没有任何大于 NVARCHAR (MAX) 的内容(例如 TEXT),尽管它确实有 10 个 NVARCHAR (MAX) 列。所以我将这些列更改为 NVARCHAR (4000) 并再次运行该过程。

我现在遇到以下异常:

外部表中列“my_column_name”的数据类型与外部源上存在的基础独立表或分片表中列的数据类型不同。

我刷新并检查了prototype DB、外部表和新表中的列类型,所有这些都表明数据类型是NVARCHAR(4000)。

那么为什么它告诉我数据类型不同呢?

该列以前是 NVARCHAR (MAX) 是巧合吗?

0 投票
0 回答
1324 浏览

oracle - 基于标题行或星号 (*) 的 Oracle 外部表列

我有一个包含大约 100 列的文本文件,以"|". 我需要通过外部表从这个文件中获取一些列。所以我的解决方案是以ACCESS PARAMETERS与文件相同的顺序指定部分下的所有列。并在创建表定义中定义所需的列。或者在创建表本身中以相同的顺序定义所有列。

我可以避免定义查询中的所有列吗?是否可以根据第一行名称本身获取列 - 前提是我将列名称作为第一行。

或者是否至少可以在select *不提及每一列的情况下获得所有列(如)?下面是我使用的代码

0 投票
1 回答
45 浏览

oracle - 什么时候可以使用Oracle外部表

我已经阅读了许多将外部表与 sqlloader 进行比较的帖子,主要优点是使用 SQL 中用于外部表的许多选项来优化选择查询。但我发现很难对大文件(1.5 GB)进行选择。仅对于 select count(*) 本身,它需要几分钟才能执行。

我的计划是通过从这些数据中执行一些选择语句来生成基于这些数据的报告。我想知道与将数据加载到内部表相比,这是否是一个更好的主意。

我假设外部表的理想用途是对文件执行 SELECT 以更有效地执行清理和加载到内部表。这并不意味着将文件用作较长时间的表格(特别是对于大文件)。如果我错了,请纠正。

0 投票
1 回答
1070 浏览

sql - 从文件而不是目录创建外部表

当我运行create external table查询时,我必须为“位置”属性提供一个目录。但是如果我指向的目录有多个文件,那么它会读取这两个文件。例如,如果我放LOCATION 'dir1/', 并且 dir1 包含 file1 和 file2,这两个文件都会被读取。

为了避免这种情况,我想指向一个文件。当我尝试LOCATION 'dir1/file1'时,它给了我一个错误,即文件路径不是目录或无法创建目录。有没有办法只指向单个文件?