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。
我正在处理一个无法直接连接到数据库的项目。我写了一个查询来获取我需要的所有数据,以便我可以导出它们。 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。