275 args = parseCmdline()
276 if args is None:
277 return 1
278
279
280 sqliteInserter = SQLiteInserter(args.createfile)
281
282
283 with DBConnection(args.dbalias) as oraConn:
284 oraExp = OracleExporter(oraConn)
285
286
287 tempTableCreationFileName = "tmpCreateTablesSQLite.sql"
288 oraExp.extractSchema(tempTableCreationFileName)
289 sqliteInserter.createSchema(tempTableCreationFileName)
290
291
292 entries = {}
293 tablesToCreate = oraExp.getTables(exceptTables = oraExp.ignoreTablesCreate)
294 tablesToFill = oraExp.getTables(exceptTables = oraExp.ignoreTablesFill)
295 print(
"Tables to create: %i" % len(tablesToCreate))
296 print(
"Tables to fill: %i" % len(tablesToFill))
297
298
299 for tableName in tablesToCreate:
300 entries[tableName] = oraExp.tableSize(tableName)
301 doNotCopy = tableName not in tablesToFill
302 print(
" table %s has %i entries %s" % (tableName, entries[tableName], (
"(will not copy)" if doNotCopy
else "") ) )
303 totalEntries = sum(entries.values())
304 print(
"\nTotal number of entries: %i" %totalEntries)
305
306
307 print(
"Start copying data")
308 copiedEntries = 0
309 for tableName in tablesToFill:
310 print(
"Copying table %s" % tableName, end =
'', flush=
True)
311 oraExp.copyTable(tableName, sqliteInserter, entries[tableName])
312 copiedEntries += entries[tableName]
313 print(
" => done %i / %i (%f%%)" % (copiedEntries, totalEntries, 100 * copiedEntries/totalEntries))
314
315 sqliteInserter.connection.close()
316
317
void print(char *figname, TCanvas *c1)