fdb2 1.0.39 → 1.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +2 -1
  2. package/dist/public/explorer.css +403 -380
  3. package/dist/public/explorer.js +1294 -737
  4. package/dist/public/index.js +242 -16
  5. package/dist/public/layout.js +1 -1
  6. package/dist/scripts/verify-db-support.cjs +239 -0
  7. package/dist/server/core/dialect.d.ts +9 -0
  8. package/dist/server/core/dialect.d.ts.map +1 -1
  9. package/dist/server/core/dialect.js +24 -9
  10. package/dist/server/core/dialect.js.map +1 -1
  11. package/dist/server/core/dialect.ts +29 -9
  12. package/dist/server/core/schema/__tests__/ddl-emitter.test.ts +7 -3
  13. package/dist/server/core/schema/ddl-emitter.d.ts.map +1 -1
  14. package/dist/server/core/schema/ddl-emitter.js +32 -12
  15. package/dist/server/core/schema/ddl-emitter.js.map +1 -1
  16. package/dist/server/core/schema/ddl-emitter.ts +34 -11
  17. package/dist/server/index.d.ts.map +1 -1
  18. package/dist/server/index.js +83 -6
  19. package/dist/server/index.js.map +1 -1
  20. package/dist/server/index.ts +87 -6
  21. package/dist/server/model/ddl-spec.d.ts +9 -0
  22. package/dist/server/model/ddl-spec.d.ts.map +1 -1
  23. package/dist/server/model/ddl-spec.ts +9 -0
  24. package/dist/server/service/connection.service.d.ts +8 -0
  25. package/dist/server/service/connection.service.d.ts.map +1 -1
  26. package/dist/server/service/connection.service.js +75 -17
  27. package/dist/server/service/connection.service.js.map +1 -1
  28. package/dist/server/service/connection.service.ts +74 -17
  29. package/dist/server/service/database/base.service.d.ts +45 -0
  30. package/dist/server/service/database/base.service.d.ts.map +1 -1
  31. package/dist/server/service/database/base.service.js +120 -7
  32. package/dist/server/service/database/base.service.js.map +1 -1
  33. package/dist/server/service/database/base.service.ts +143 -8
  34. package/dist/server/service/database/cockroachdb.service.d.ts +9 -0
  35. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  36. package/dist/server/service/database/cockroachdb.service.js +67 -56
  37. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  38. package/dist/server/service/database/cockroachdb.service.ts +66 -57
  39. package/dist/server/service/database/database.service.d.ts +3 -221
  40. package/dist/server/service/database/database.service.d.ts.map +1 -1
  41. package/dist/server/service/database/database.service.js +66 -24
  42. package/dist/server/service/database/database.service.js.map +1 -1
  43. package/dist/server/service/database/database.service.ts +69 -23
  44. package/dist/server/service/database/mongodb.service.d.ts +58 -3
  45. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  46. package/dist/server/service/database/mongodb.service.js +251 -54
  47. package/dist/server/service/database/mongodb.service.js.map +1 -1
  48. package/dist/server/service/database/mongodb.service.ts +275 -60
  49. package/dist/server/service/database/mssql.service.d.ts +8 -0
  50. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  51. package/dist/server/service/database/mssql.service.js +41 -36
  52. package/dist/server/service/database/mssql.service.js.map +1 -1
  53. package/dist/server/service/database/mssql.service.ts +45 -40
  54. package/dist/server/service/database/oracle.service.d.ts +24 -0
  55. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  56. package/dist/server/service/database/oracle.service.js +146 -106
  57. package/dist/server/service/database/oracle.service.js.map +1 -1
  58. package/dist/server/service/database/oracle.service.ts +145 -105
  59. package/dist/server/service/database/sqlite.service.js +1 -1
  60. package/dist/server/service/database/sqlite.service.js.map +1 -1
  61. package/dist/server/service/database/sqlite.service.ts +1 -1
  62. package/package.json +8 -8
  63. package/scripts/verify-db-support.cjs +239 -0
@@ -22,12 +22,44 @@ export class OracleService extends BaseDatabaseService {
22
22
  return 'oracle';
23
23
  }
24
24
 
25
+ /**
26
+ * 统一封装 Oracle 查询。
27
+ *
28
+ * 关键约定(务必遵守,否则会静默拿到 undefined):
29
+ * 1. oracledb 返回的行对象键名是大写;dbQuery 统一把键名转成小写后返回。
30
+ * 2. 因此**所有 SQL 别名必须写成加引号的小写**(如 `... as "defaultvalue"`),
31
+ * 读取时用同名小写属性(如 `row.defaultvalue`)。
32
+ * 若别名写成 camelCase(如 `"isIdentity"`),归一化后是 `isidentity`,
33
+ * 用 `row.isIdentity` 读取会得到 undefined —— 这是最容易踩的坑。
34
+ * 3. 加引号同时可规避 Oracle 保留字别名(`column`/`type`/`comment`/`size` 等)
35
+ * 导致的 ORA-00923 "FROM keyword not found"。
36
+ * 4. 数据导出等按列名取值(`row[column]`)依赖本归一化:Oracle 的 `SELECT *`
37
+ * 返回的键名是大写,而 getColumns 返回小写列名,统一小写后二者才能对上。
38
+ */
39
+ private async dbQuery(dataSource: DataSource, sql: string, parameters?: any[]): Promise<any[]> {
40
+ const result = await dataSource.query(sql, parameters);
41
+ return this.normalizeRows(result);
42
+ }
43
+
44
+ /**
45
+ * 把每行对象的键名转小写(oracledb 默认返回大写键名)。
46
+ */
47
+ private normalizeRows(result: any): any[] {
48
+ if (!Array.isArray(result)) return result as any;
49
+ return result.map((row) => {
50
+ if (!row || typeof row !== 'object' || Array.isArray(row)) return row;
51
+ const out: any = {};
52
+ for (const k of Object.keys(row)) out[k.toLowerCase()] = row[k];
53
+ return out;
54
+ });
55
+ }
56
+
25
57
  /**
26
58
  * 获取Oracle数据库列表(用户schema)
27
59
  */
28
60
  async getDatabases(dataSource: DataSource): Promise<string[]> {
29
- const result = await dataSource.query(`
30
- SELECT username as name
61
+ const result = await this.dbQuery(dataSource, `
62
+ SELECT username as "name"
31
63
  FROM all_users
32
64
  WHERE username NOT IN ('SYS', 'SYSTEM', 'XDB', 'OUTLN')
33
65
  ORDER BY username
@@ -39,16 +71,16 @@ export class OracleService extends BaseDatabaseService {
39
71
  * 获取Oracle表列表
40
72
  */
41
73
  async getTables(dataSource: DataSource, database: string): Promise<TableEntity[]> {
42
- const result = await dataSource.query(`
74
+ const result = await this.dbQuery(dataSource, `
43
75
  SELECT
44
- table_name as name,
45
- 'TABLE' as type
76
+ table_name as "name",
77
+ 'TABLE' as "type"
46
78
  FROM all_tables
47
- WHERE owner = ?
79
+ WHERE owner = USER
48
80
  AND table_name NOT LIKE 'BIN$%'
49
81
  AND temporary = 'N'
50
82
  ORDER BY table_name
51
- `, [database.toUpperCase()]);
83
+ `);
52
84
 
53
85
  return result.map((row: any) => ({
54
86
  name: row.name,
@@ -64,19 +96,18 @@ export class OracleService extends BaseDatabaseService {
64
96
  */
65
97
  async getColumns(dataSource: DataSource, database: string, table: string): Promise<ColumnEntity[]> {
66
98
  // 使用兼容的SQL查询,移除可能不兼容的字段
67
- const result = await dataSource.query(`
99
+ const result = await this.dbQuery(dataSource, `
68
100
  SELECT
69
- column_name as name,
70
- data_type as type,
71
- data_length as length,
72
- nullable as nullable,
73
- data_default as defaultValue
74
- FROM all_tab_columns
75
- WHERE owner = ?
76
- AND table_name = ?
101
+ column_name as "name",
102
+ data_type as "type",
103
+ data_length as "length",
104
+ nullable as "nullable",
105
+ data_default as "defaultvalue",
106
+ identity_column as "isidentity"
107
+ FROM user_tab_columns
108
+ WHERE table_name = :1
77
109
  ORDER BY column_id
78
110
  `, [
79
- database.toUpperCase(),
80
111
  table.toUpperCase()
81
112
  ]);
82
113
 
@@ -102,12 +133,15 @@ export class OracleService extends BaseDatabaseService {
102
133
  }
103
134
 
104
135
  return {
105
- name: row.name,
136
+ // Oracle 数据字典中列名是大写存储的,而其它方言(及前端 spec)使用小写,
137
+ // 且 Oracle 对未加引号的标识符大小写不敏感。统一返回小写,避免与 spec 比较时
138
+ // 因大小写不同而把"已存在列"误判为"删除+新增"(会触发 ORA-01430 等)。
139
+ name: (row.name || '').toLowerCase(),
106
140
  type: row.type + (row.length ? `(${row.length})` : ''),
107
141
  nullable: row.nullable === 'Y',
108
- defaultValue: row.defaultValue,
109
- isPrimary: primaryKeys.includes(row.name),
110
- isAutoIncrement: sequenceColumns.includes(row.name),
142
+ defaultValue: row.defaultvalue,
143
+ isPrimary: primaryKeys.includes((row.name || '').toLowerCase()),
144
+ isAutoIncrement: row.isidentity === 'YES' || sequenceColumns.includes((row.name || '').toLowerCase()),
111
145
  length: row.length,
112
146
  precision: precision,
113
147
  scale: scale
@@ -119,24 +153,23 @@ export class OracleService extends BaseDatabaseService {
119
153
  * 获取Oracle索引信息
120
154
  */
121
155
  async getIndexes(dataSource: DataSource, database: string, table: string): Promise<IndexEntity[]> {
122
- const result = await dataSource.query(`
123
- SELECT DISTINCT
124
- i.index_name as name,
125
- DECODE(i.uniqueness, 'UNIQUE', 'UNIQUE INDEX', 'INDEX') as type,
126
- ic.column_name as column
156
+ const result = await this.dbQuery(dataSource, `
157
+ SELECT
158
+ i.index_name as "name",
159
+ DECODE(i.uniqueness, 'UNIQUE', 'UNIQUE INDEX', 'INDEX') as "type",
160
+ ic.column_name as "column"
127
161
  FROM all_indexes i
128
- JOIN all_ind_columns ic ON i.index_name = ic.index_name
129
- WHERE i.table_owner = ?
130
- AND i.table_name = ?
162
+ -- 索引名只在 schema 内唯一,必须同时限定 owner,否则跨 schema 同名索引会产生重复行。
163
+ -- 用 join 去重(而非 DISTINCT),这样 ORDER BY 未出现在 SELECT 中的列也不会触发 ORA-01791。
164
+ JOIN all_ind_columns ic ON i.index_name = ic.index_name AND ic.index_owner = i.table_owner
165
+ WHERE i.table_owner = USER
166
+ AND i.table_name = :1
131
167
  AND i.index_name NOT IN (SELECT constraint_name
132
168
  FROM all_constraints
133
- WHERE constraint_type = 'P'
134
- AND table_owner = ?)
169
+ WHERE constraint_type = 'P')
135
170
  ORDER BY i.index_name, ic.column_position
136
171
  `, [
137
- database.toUpperCase(),
138
- table.toUpperCase(),
139
- database.toUpperCase()
172
+ table.toUpperCase()
140
173
  ]);
141
174
 
142
175
  // 按索引名分组
@@ -160,31 +193,30 @@ export class OracleService extends BaseDatabaseService {
160
193
  * 获取Oracle外键信息
161
194
  */
162
195
  async getForeignKeys(dataSource: DataSource, database: string, table: string): Promise<ForeignKeyEntity[]> {
163
- const result = await dataSource.query(`
196
+ const result = await this.dbQuery(dataSource, `
164
197
  SELECT
165
- c.constraint_name as name,
166
- cc.column_name as column,
167
- r.table_name as referencedTable,
168
- rc.column_name as referencedColumn,
169
- c.delete_rule as onDelete
198
+ c.constraint_name as "name",
199
+ cc.column_name as "column",
200
+ r.table_name as "referencedtable",
201
+ rc.column_name as "referencedcolumn",
202
+ c.delete_rule as "ondelete"
170
203
  FROM all_constraints c
171
204
  JOIN all_cons_columns cc ON c.constraint_name = cc.constraint_name
172
205
  JOIN all_constraints r ON c.r_constraint_name = r.constraint_name
173
206
  JOIN all_cons_columns rc ON r.constraint_name = rc.constraint_name AND cc.position = rc.position
174
207
  WHERE c.constraint_type = 'R'
175
- AND c.owner = ?
176
- AND c.table_name = ?
208
+ AND c.owner = USER
209
+ AND c.table_name = :1
177
210
  `, [
178
- database.toUpperCase(),
179
211
  table.toUpperCase()
180
212
  ]);
181
213
 
182
214
  return result.map((row: any) => ({
183
215
  name: row.name,
184
216
  column: row.column,
185
- referencedTable: row.referencedTable,
186
- referencedColumn: row.referencedColumn,
187
- onDelete: row.onDelete || 'NO ACTION',
217
+ referencedTable: row.referencedtable,
218
+ referencedColumn: row.referencedcolumn,
219
+ onDelete: row.ondelete || 'NO ACTION',
188
220
  onUpdate: 'NO ACTION' // Oracle不支持ON UPDATE
189
221
  }));
190
222
  }
@@ -193,8 +225,8 @@ export class OracleService extends BaseDatabaseService {
193
225
  * 获取Oracle数据库大小(用户schema大小)
194
226
  */
195
227
  async getDatabaseSize(dataSource: DataSource, database: string): Promise<number> {
196
- const result = await dataSource.query(`
197
- SELECT SUM(bytes) as size
228
+ const result = await this.dbQuery(dataSource, `
229
+ SELECT SUM(bytes) as "size"
198
230
  FROM user_segments
199
231
  `);
200
232
  return result[0]?.size || 0;
@@ -205,21 +237,21 @@ export class OracleService extends BaseDatabaseService {
205
237
  */
206
238
  private async getTableStats(dataSource: DataSource, database: string, table: string): Promise<any> {
207
239
  try {
208
- const result = await dataSource.query(`
240
+ const result = await this.dbQuery(dataSource, `
209
241
  SELECT
210
- num_rows as rowCount,
211
- (SELECT SUM(bytes) FROM user_segments WHERE segment_name = ?) as dataSize
242
+ num_rows as "rowcount",
243
+ (SELECT SUM(bytes) FROM user_segments WHERE segment_name = :1) as "datasize"
212
244
  FROM all_tables
213
- WHERE owner = ? AND table_name = ?
245
+ WHERE owner = USER AND table_name = :2
214
246
  `, [
215
247
  table.toUpperCase(),
216
- database.toUpperCase(),
217
248
  table.toUpperCase()
218
249
  ]);
219
250
 
251
+ // 注意:dbQuery 会把键名统一转小写,故这里读 lowercase 键名
220
252
  return {
221
- rowCount: result[0]?.rowCount || 0,
222
- dataSize: result[0]?.dataSize || 0,
253
+ rowCount: result[0]?.rowcount || 0,
254
+ dataSize: result[0]?.datasize || 0,
223
255
  indexSize: 0 // Oracle索引大小计算较复杂,这里简化处理
224
256
  };
225
257
  } catch (error) {
@@ -236,19 +268,18 @@ export class OracleService extends BaseDatabaseService {
236
268
  * 获取主键信息
237
269
  */
238
270
  private async getPrimaryKeys(dataSource: DataSource, database: string, table: string): Promise<string[]> {
239
- const result = await dataSource.query(`
240
- SELECT column_name
271
+ const result = await this.dbQuery(dataSource, `
272
+ SELECT cc.column_name as "column_name"
241
273
  FROM all_cons_columns cc
242
274
  JOIN all_constraints c ON cc.constraint_name = c.constraint_name
243
275
  WHERE c.constraint_type = 'P'
244
- AND c.owner = ?
245
- AND c.table_name = ?
276
+ AND c.owner = USER
277
+ AND c.table_name = :1
246
278
  ORDER BY cc.position
247
279
  `, [
248
- database.toUpperCase(),
249
280
  table.toUpperCase()
250
281
  ]);
251
- return result.map((row: any) => row.column_name);
282
+ return result.map((row: any) => (row.column_name || '').toLowerCase());
252
283
  }
253
284
 
254
285
  /**
@@ -256,21 +287,20 @@ export class OracleService extends BaseDatabaseService {
256
287
  */
257
288
  private async getSequenceColumns(dataSource: DataSource, database: string, table: string): Promise<string[]> {
258
289
  try {
259
- const result = await dataSource.query(`
260
- SELECT acc.column_name
290
+ const result = await this.dbQuery(dataSource, `
291
+ SELECT acc.column_name as "column_name"
261
292
  FROM all_tab_columns acc
262
293
  JOIN all_triggers at ON acc.table_name = at.table_name
263
294
  AND acc.owner = at.owner
264
295
  JOIN all_sequences seq ON at.trigger_name LIKE seq.sequence_name || '%'
265
- WHERE acc.owner = ?
266
- AND acc.table_name = ?
296
+ WHERE acc.owner = USER
297
+ AND acc.table_name = :1
267
298
  AND acc.data_default IS NOT NULL
268
299
  AND acc.data_default LIKE seq.sequence_name || '.nextval'
269
300
  `, [
270
- database.toUpperCase(),
271
301
  table.toUpperCase()
272
302
  ]);
273
- return result.map((row: any) => row.column_name);
303
+ return result.map((row: any) => (row.column_name || '').toLowerCase());
274
304
  } catch (error) {
275
305
  // 如果查询失败,返回空数组
276
306
  return [];
@@ -284,18 +314,26 @@ export class OracleService extends BaseDatabaseService {
284
314
  return `"${identifier.toUpperCase()}"`;
285
315
  }
286
316
 
317
+ /**
318
+ * Oracle 不支持 LIMIT/OFFSET 语法,分页需用 12c+ 的
319
+ * `OFFSET n ROWS FETCH NEXT m ROWS ONLY`。
320
+ */
321
+ protected buildPaginationClause(pageSize: number, offset: number): string {
322
+ return `OFFSET ${offset} ROWS FETCH NEXT ${pageSize} ROWS ONLY`;
323
+ }
324
+
287
325
  /**
288
326
  * 获取Oracle视图列表
289
327
  */
290
328
  async getViews(dataSource: DataSource, database: string): Promise<any[]> {
291
- const result = await dataSource.query(`
329
+ const result = await this.dbQuery(dataSource, `
292
330
  SELECT
293
- view_name as name,
294
- '' as comment
331
+ view_name as "name",
332
+ NULL as "comment"
295
333
  FROM all_views
296
- WHERE owner = ?
334
+ WHERE owner = USER
297
335
  ORDER BY view_name
298
- `, [database.toUpperCase()]);
336
+ `);
299
337
 
300
338
  return result.map((row: any) => ({
301
339
  name: row.name,
@@ -308,12 +346,12 @@ export class OracleService extends BaseDatabaseService {
308
346
  * 获取Oracle视图定义
309
347
  */
310
348
  async getViewDefinition(dataSource: DataSource, database: string, viewName: string): Promise<string> {
311
- const result = await dataSource.query(`
312
- SELECT text as definition
349
+ const result = await this.dbQuery(dataSource, `
350
+ SELECT text as "definition"
313
351
  FROM all_views
314
- WHERE owner = ?
315
- AND view_name = ?
316
- `, [database.toUpperCase(), viewName.toUpperCase()]);
352
+ WHERE owner = USER
353
+ AND view_name = :1
354
+ `, [viewName.toUpperCase()]);
317
355
 
318
356
  return result[0]?.definition || '';
319
357
  }
@@ -322,25 +360,25 @@ export class OracleService extends BaseDatabaseService {
322
360
  * 获取Oracle存储过程列表
323
361
  */
324
362
  async getProcedures(dataSource: DataSource, database: string): Promise<any[]> {
325
- const result = await dataSource.query(`
363
+ const result = await this.dbQuery(dataSource, `
326
364
  SELECT
327
- object_name as name,
328
- '' as comment,
329
- 'PROCEDURE' as type,
330
- '' as returnType,
331
- 'PL/SQL' as language
365
+ object_name as "name",
366
+ NULL as "comment",
367
+ 'PROCEDURE' as "type",
368
+ NULL as "returnvalue",
369
+ 'PL/SQL' as "language"
332
370
  FROM all_objects
333
- WHERE owner = ?
371
+ WHERE owner = USER
334
372
  AND object_type IN ('PROCEDURE', 'FUNCTION')
335
373
  AND status = 'VALID'
336
374
  ORDER BY object_name
337
- `, [database.toUpperCase()]);
375
+ `);
338
376
 
339
377
  return result.map((row: any) => ({
340
378
  name: row.name,
341
379
  comment: row.comment || '',
342
380
  type: row.type,
343
- returnType: row.returnType || '',
381
+ returnType: row.returnvalue || '',
344
382
  language: row.language || 'PL/SQL'
345
383
  }));
346
384
  }
@@ -349,13 +387,13 @@ export class OracleService extends BaseDatabaseService {
349
387
  * 获取Oracle存储过程定义
350
388
  */
351
389
  async getProcedureDefinition(dataSource: DataSource, database: string, procedureName: string): Promise<string> {
352
- const result = await dataSource.query(`
353
- SELECT text as definition
390
+ const result = await this.dbQuery(dataSource, `
391
+ SELECT text as "definition"
354
392
  FROM all_source
355
- WHERE owner = ?
356
- AND name = ?
393
+ WHERE owner = USER
394
+ AND name = :1
357
395
  ORDER BY line
358
- `, [database.toUpperCase(), procedureName.toUpperCase()]);
396
+ `, [procedureName.toUpperCase()]);
359
397
 
360
398
  return result.map((row: any) => row.definition).join('\n') || '';
361
399
  }
@@ -404,7 +442,7 @@ export class OracleService extends BaseDatabaseService {
404
442
  }
405
443
  }
406
444
 
407
- await dataSource.query(sql);
445
+ await this.dbQuery(dataSource, sql);
408
446
  }
409
447
 
410
448
  /**
@@ -412,7 +450,7 @@ export class OracleService extends BaseDatabaseService {
412
450
  */
413
451
  async dropDatabase(dataSource: DataSource, databaseName: string): Promise<void> {
414
452
  const sql = `DROP DATABASE ${this.quoteIdentifier(databaseName)}`;
415
- await dataSource.query(sql);
453
+ await this.dbQuery(dataSource, sql);
416
454
  }
417
455
 
418
456
  /**
@@ -432,14 +470,17 @@ export class OracleService extends BaseDatabaseService {
432
470
  const foreignKeys = await this.getForeignKeys(dataSource, databaseName, table.name);
433
471
 
434
472
  // 生成CREATE TABLE语句
473
+ // 注意:Oracle 不支持 `CREATE TABLE IF NOT EXISTS` 语法,直接生成 CREATE TABLE。
435
474
  schemaSql += `-- 表结构: ${table.name}\n`;
436
- schemaSql += `CREATE TABLE IF NOT EXISTS ${this.quoteIdentifier(table.name)} (\n`;
475
+ schemaSql += `CREATE TABLE ${this.quoteIdentifier(table.name)} (\n`;
437
476
 
438
477
  // 添加列定义
478
+ // 注意:Oracle 语法要求 `GENERATED ... AS IDENTITY` 出现在 NOT NULL / DEFAULT 之前。
439
479
  const columnDefinitions = columns.map(column => {
440
480
  let definition = ` ${this.quoteIdentifier(column.name)} ${column.type}`;
481
+ if (column.isAutoIncrement) definition += ' GENERATED ALWAYS AS IDENTITY';
441
482
  if (!column.nullable) definition += ' NOT NULL';
442
- if (column.defaultValue !== undefined) {
483
+ if (column.defaultValue !== undefined && column.defaultValue !== null) {
443
484
  // 特殊关键字处理
444
485
  const upperDefault = column.defaultValue.toString().toUpperCase();
445
486
  if (upperDefault === 'CURRENT_TIMESTAMP' || upperDefault === 'NOW()' || upperDefault === 'CURRENT_DATE') {
@@ -448,7 +489,6 @@ export class OracleService extends BaseDatabaseService {
448
489
  definition += ` DEFAULT ${column.defaultValue === null ? 'NULL' : `'${column.defaultValue}'`}`;
449
490
  }
450
491
  }
451
- if (column.isAutoIncrement) definition += ' GENERATED ALWAYS AS IDENTITY';
452
492
  return definition;
453
493
  });
454
494
 
@@ -490,14 +530,14 @@ export class OracleService extends BaseDatabaseService {
490
530
  // Oracle查看日志
491
531
  try {
492
532
  // 尝试查看Oracle警告日志
493
- const logs = await dataSource.query(`
533
+ const logs = await this.dbQuery(dataSource, `
494
534
  SELECT * FROM v$diag_info WHERE name LIKE '%Log%'
495
535
  `);
496
536
  return logs;
497
537
  } catch (error) {
498
538
  try {
499
539
  // 尝试查看Oracle系统事件
500
- const logs = await dataSource.query(`
540
+ const logs = await this.dbQuery(dataSource, `
501
541
  SELECT * FROM v$event_name WHERE name LIKE '%log%' LIMIT ${limit}
502
542
  `);
503
543
  return logs;
@@ -613,7 +653,7 @@ ALTER DATABASE OPEN;
613
653
  while (hasMoreData) {
614
654
  // 分批查询数据(Oracle 使用 ROWNUM 语法)
615
655
  const query = `SELECT * FROM (SELECT a.*, ROWNUM rnum FROM (SELECT * FROM ${this.quoteIdentifier(tableName)}) a WHERE ROWNUM <= ${offset + batchSize}) WHERE rnum > ${offset}`;
616
- const data = await dataSource.query(query);
656
+ const data = await this.dbQuery(dataSource, query);
617
657
 
618
658
  if (data.length === 0) {
619
659
  hasMoreData = false;
@@ -702,7 +742,7 @@ ALTER DATABASE OPEN;
702
742
  while (hasMoreData) {
703
743
  // 分批查询数据(Oracle 使用 ROWNUM 语法)
704
744
  const query = `SELECT * FROM (SELECT a.*, ROWNUM rnum FROM (SELECT * FROM ${this.quoteIdentifier(tableName)}) a WHERE ROWNUM <= ${offset + batchSize}) WHERE rnum > ${offset}`;
705
- const data = await dataSource.query(query);
745
+ const data = await this.dbQuery(dataSource, query);
706
746
 
707
747
  if (data.length === 0) {
708
748
  hasMoreData = false;
@@ -782,7 +822,7 @@ ALTER DATABASE OPEN;
782
822
  while (hasMoreData) {
783
823
  // 分批查询数据(Oracle 使用 ROWNUM 语法)
784
824
  const query = `SELECT * FROM (SELECT a.*, ROWNUM rnum FROM (SELECT * FROM ${this.quoteIdentifier(tableName)}) a WHERE ROWNUM <= ${offset + batchSize}) WHERE rnum > ${offset}`;
785
- const data = await dataSource.query(query);
825
+ const data = await this.dbQuery(dataSource, query);
786
826
 
787
827
  if (data.length === 0) {
788
828
  hasMoreData = false;
@@ -854,17 +894,17 @@ ALTER DATABASE OPEN;
854
894
  const placeholders = columns.map((_, index) => `:${index + 1}`).join(', ');
855
895
  const values = columns.map(column => data[column]);
856
896
 
857
- const sql = `INSERT INTO "${tableName}" (${columns.map(col => `"${col}"`).join(', ')}) VALUES (${placeholders})`;
897
+ const sql = `INSERT INTO ${this.quoteIdentifier(tableName)} (${columns.map(col => this.quoteIdentifier(col)).join(', ')}) VALUES (${placeholders})`;
858
898
 
859
- await dataSource.query(sql, values);
899
+ await this.dbQuery(dataSource, sql, values);
860
900
  }
861
901
 
862
902
  /**
863
903
  * 删除表
864
904
  */
865
905
  async dropTable(dataSource: DataSource, databaseName: string, tableName: string): Promise<void> {
866
- const sql = `DROP TABLE "${tableName}"`;
867
- await dataSource.query(sql);
906
+ const sql = `DROP TABLE ${this.quoteIdentifier(tableName)} PURGE`;
907
+ await this.dbQuery(dataSource, sql);
868
908
  }
869
909
 
870
910
  /**
@@ -206,7 +206,7 @@ class SQLiteService extends base_service_1.BaseDatabaseService {
206
206
  let definition = ` ${this.quoteIdentifier(column.name)} ${column.type}`;
207
207
  if (!column.nullable)
208
208
  definition += ' NOT NULL';
209
- if (column.defaultValue !== undefined) {
209
+ if (column.defaultValue !== undefined && column.defaultValue !== null) {
210
210
  // 特殊关键字处理
211
211
  const upperDefault = column.defaultValue.toString().toUpperCase();
212
212
  if (upperDefault === 'CURRENT_TIMESTAMP' || upperDefault === 'NOW()' || upperDefault === 'CURRENT_DATE') {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.service.js","sourceRoot":"","sources":["../../../../server/service/database/sqlite.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.service.js","sourceRoot":"","sources":["../../../../server/service/database/sqlite.service.ts"],"names":[],"mappings":"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"}
@@ -204,7 +204,7 @@ export class SQLiteService extends BaseDatabaseService {
204
204
  const columnDefinitions = columns.map(column => {
205
205
  let definition = ` ${this.quoteIdentifier(column.name)} ${column.type}`;
206
206
  if (!column.nullable) definition += ' NOT NULL';
207
- if (column.defaultValue !== undefined) {
207
+ if (column.defaultValue !== undefined && column.defaultValue !== null) {
208
208
  // 特殊关键字处理
209
209
  const upperDefault = column.defaultValue.toString().toUpperCase();
210
210
  if (upperDefault === 'CURRENT_TIMESTAMP' || upperDefault === 'NOW()' || upperDefault === 'CURRENT_DATE') {