Подтвердить что ты не робот

Создание таблицы DDL из Microsoft Access

Есть ли какой-либо простой способ получить создание DDL для создания таблицы из Microsoft Access (2007) или я должен сам его сам использовать с помощью VBA для чтения структуры таблицы?

У меня около 30 таблиц, которые мы переносим в Oracle, и это облегчило бы жизнь, если бы мы могли создавать таблицы из определений Access.

4b9b3361

Ответ 1

Спасибо за другие предложения. Пока я ждал, я написал код VBA, чтобы сделать это. Это не идеально, но сделал для меня работу.

Option Compare Database
Public Function TableCreateDDL(TableDef As TableDef) As String

         Dim fldDef As Field
         Dim FieldIndex As Integer
         Dim fldName As String, fldDataInfo As String
         Dim DDL As String
         Dim TableName As String

         TableName = TableDef.Name
         TableName = Replace(TableName, " ", "_")
         DDL = "create table " & TableName & "(" & vbCrLf
         With TableDef
            For FieldIndex = 0 To .Fields.Count - 1
               Set fldDef = .Fields(FieldIndex)
               With fldDef
                  fldName = .Name
                  fldName = Replace(fldName, " ", "_")
                  Select Case .Type
                     Case dbBoolean
                        fldDataInfo = "nvarchar2"
                     Case dbByte
                        fldDataInfo = "number"
                     Case dbInteger
                        fldDataInfo = "number"
                     Case dbLong
                        fldDataInfo = "number"
                     Case dbCurrency
                        fldDataInfo = "number"
                     Case dbSingle
                        fldDataInfo = "number"
                     Case dbDouble
                        fldDataInfo = "number"
                     Case dbDate
                        fldDataInfo = "date"
                     Case dbText
                        fldDataInfo = "nvarchar2(" & Format$(.Size) & ")"
                     Case dbLongBinary
                        fldDataInfo = "****"
                     Case dbMemo
                        fldDataInfo = "****"
                     Case dbGUID
                        fldDataInfo = "nvarchar2(16)"
                  End Select
               End With
               If FieldIndex > 0 Then
               DDL = DDL & ", " & vbCrLf
               End If
               DDL = DDL & "  " & fldName & " " & fldDataInfo
               Next FieldIndex
         End With
         DDL = DDL & ");"
         TableCreateDDL = DDL
End Function


Sub ExportAllTableCreateDDL()

    Dim lTbl As Long
    Dim dBase As Database
    Dim Handle As Integer

    Set dBase = CurrentDb

    Handle = FreeFile

    Open "c:\export\TableCreateDDL.txt" For Output Access Write As #Handle

    For lTbl = 0 To dBase.TableDefs.Count - 1
         'If the table name is a temporary or system table then ignore it
        If Left(dBase.TableDefs(lTbl).Name, 1) = "~" Or _
        Left(dBase.TableDefs(lTbl).Name, 4) = "MSYS" Then
             '~ indicates a temporary table
             'MSYS indicates a system level table
        Else
          Print #Handle, TableCreateDDL(dBase.TableDefs(lTbl))
        End If
    Next lTbl
    Close Handle
    Set dBase = Nothing
End Sub

Я никогда не утверждал, что я программист VB.

Ответ 2

Я сделал это:

Там есть инструмент для "повышения" доступа к SQL Server. Сделайте это, затем используйте отличные инструменты SQL Server для генерации script.

http://support.microsoft.com/kb/237980

Ответ 3

Используйте инструментарий Oracle Migration Workbench для разработчиков.

Здесь есть полное руководство по конвертации баз данных Access в Oracle, доступных здесь. Если это только те структуры, которые вам нужны, то вы можете сосредоточиться на разделе 3.0.

Ответ 4

Возможно, вы захотите изучить ADOX, чтобы получить информацию о схеме. Используя ADOX, вы можете получить такие вещи, как ключи, представления, отношения и т.д.

К сожалению, я не программист VB, но есть множество примеров в Интернете, использующих ADOX для получения схемы таблицы.

Ответ 5

Вы можете использовать функцию экспорта в Access для экспорта таблиц в источник данных ODBC. Настройте источник данных ODBC в базу данных Oracle, а затем щелкните правой кнопкой мыши таблицу на вкладке "Таблицы" и выберите "Экспорт". ODBC является одним из "форматов файлов" - он откроет обычный диалог ODBC.

Ответ 6

Немного поздно для вечеринки, но я использую RazorSQL для создания баз данных DDL для доступа.