Я бы предложил просто создать оператор create table вместо построения таблицы и затем изменить ее, чтобы добавить в нее столбцы!
Вы можете избавиться от дубликатов в списке, используя следующий код:
listWithoutDups = list(dict.fromkeys(listWithDups))
Затем вы можете построить свое утверждение следующим образом:
columns = ['"%s" varchar2(255)' % n for n in listWithoutDups]
sql = "create table SomeTableName (%s)" % ",".join(columns)
cursor.execute(sql)
Вы заметите, что я включил двойные кавычки вокруг имен столбцов - это необходимо, если вы хотите создать столбцы которые не соответствуют стандартам Oracle (включая специальные символы, пробелы и т. д.), но имейте в виду, что это также делает имена чувствительными к регистру, и вам потребуется также указывать кавычки при выполнении любой операции над таблицей.
AppDomain - это единица изоляции в процессе. Домены приложений могут быть созданы во время выполнения, загружены с кодом и выгружены. Это граница изоляции, предназначенная для повышения надежности приложений .NET.
Сборка содержит один или несколько модулей, которые содержат скомпилированные фрагменты кода. Обычно вы видите сборку как .EXE или .DLL.
Процесс - это исполняемое приложение (очень упрощенно).
Поток - это контекст выполнения. Операционная система выполняет код в потоке. Операционная система переключается между потоками, позволяя выполнять каждый из них по очереди, создавая впечатление, что несколько приложений выполняются одновременно.
Собрать все вместе (очень упрощенно) ...
Программа выполняется , Процесс создается операционной системой, и в пределах одного потока он начинает загружать код для выполнения. В . NET приложение, один домен приложений создается CLR. Исполняющая сборка приложения (.EXE) загружается в этот домен приложений и начинает выполнение. Приложение может порождать новые процессы, создавать домены приложений, загружать другие сборки в эти домены, а затем создавать новые потоки для выполнения кода в любом из этих доменов приложений.