SQL 开发者:查询结果的导出不保留 data_type

SQL Developer : Export of the query result don't keep the data_type

我正在处理一个无法直接连接到数据库的项目。我写了一个查询来获取我需要的所有数据,以便我可以导出它们。 SQL 查询的结果很好 data_type 但是当我导出结果时,我选择了 insert 格式,此时所有 data_type 都切换为字符串。

导出数据的示例,其中数字为字符串格式,而在原始数据库和查询的响应中,类型是受尊重的:

Insert into MY_TABLE (POSTCODE, NUMBER, ADRESS, CODE, CITY, VALUE) values ('90000', '303', 'HultonLane', '2845', 'BOLTON', '3');

请问有什么方法可以从原始数据库中导出相同data_type的数据吗?

感谢您的帮助,如果您需要更多信息,我会提供。

该行为(或错误?)存在于例如SQL 开发者版本 19.4,但在 20.2 中 已修复 所以 - 如果您使用的是较低版本,我建议您升级。


这是一个基于 Scott 的 DEPT table 的示例,其中 DEPTNO 列的数据类型是 NUMBER。结果 - 当这个:

desc dept;
select /*insert*/ * from dept;

作为脚本是 运行 - 是:

Name   Null?    Type         
------ -------- ------------ 
DEPTNO NOT NULL NUMBER       
DNAME           VARCHAR2(20) 
LOC             VARCHAR2(20) 
REM INSERTING into DEPT
SET DEFINE OFF;
Insert into DEPT (DEPTNO,DNAME,LOC) values (10,'ACCOUNTING','NEW YORK');
Insert into DEPT (DEPTNO,DNAME,LOC) values (20,'RESEARCH','DALLAS');
Insert into DEPT (DEPTNO,DNAME,LOC) values (30,'SALES','CHICAGO');
Insert into DEPT (DEPTNO,DNAME,LOC) values (40,'OPERATIONS','BOSTON');

如您所见,所有 DEPTNO 值都是数字。在 19.4 中,你会有例如

Insert into DEPT (DEPTNO,DNAME,LOC) values ('10','ACCOUNTING','NEW YORK');

('10', 一个字符串).

您无需为此做任何事情;无论您 运行 这样的 select 语句,还是右键单击 table 名称和“导出”数据作为插入语句,结果都是一样的。

顺便说一句,我们的版本匹配:我的版本是 20.2.0.175,内部版本是 175.1842。