https://www.oracle.com/database/sqldeveloper/technologies/download/
Oracle SQL Developer 24.3.1.347.1826-x64 Windows 版本
我是 4 月初下载的这版本,目前官网也是这个版本。
BUG:当一张表,中间某个字段的名字是“REMARK”时,用它导出数据,该字段名字会直接消失。
复现:
1.测试用的 Oracle 版本:
// Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
docker run -d --name oracledb \
--memory 8192m \
--publish 1521:1521/tcp \
--env ORACLE_SID=oraclesid \
--env ORACLE_PWD=oraclepassword \
--env ORACLE_CHARACTERSET=AL32UTF8 \
--env SGA_SIZE=8G \
--env PGA_SIZE=8G \
--env DB_ROLE=primary \
--env ENABLE_ARCH=true \
--volume /data/oracledb:/opt/oracle/oradata \
echoer/oracle-database:11.2.0.4.0-ee
2.创建测试表:
CREATE TABLE TEST_REMARK_BUG
(
ID NUMBER(10) NOT NULL,
CREATED_AT TIMESTAMP(6),
CODE VARCHAR2(32 CHAR) NOT NULL,
REGISTED NUMBER(1) NOT NULL,
REMARK VARCHAR2(2000 CHAR),
PROJECT_ID NUMBER(10),
ENROLL_ON DATE
);
2.插入测试数据:
INSERT INTO TEST_REMARK_BUG
(
ID,
CREATED_AT,
CODE,
REGISTED,
REMARK,
PROJECT_ID,
ENROLL_ON
)
VALUES
(
1,
SYSTIMESTAMP,
'20260001',
0,
NULL,
100,
DATE '2026-05-07'
);
3.用 Oracle SQL Developer 的导出数据功能(仅导出数据,不导出表结构):
Insert into SYSTEM.TEST_REMARK_BUG (ID,CREATED_AT,CODE,REGISTED,,PROJECT_ID,ENROLL_ON) values (1,to_timestamp('07-5 月 -26 05.32.01.577051000 上午','DD-MON-RR HH.MI.SSXFF AM'),'20260001',0,null,100,to_date('07-5 月 -26','DD-MON-RR'));
请注意,这条导出的 SQL Insert 语句中,REGISTED 与 PROJECT_ID 中间本来应该是“,REMARK,”,但 SQL 中却只剩下两个逗号。