質問

I輸出csvファイル Firebird びんの数時間を過ごしたいツールおよび合った。

主な問題は、すべてのツールっていう EMSデータインポートFirebirdのデータをウィザード ることを期待っCSVファイルを含む全ての情報が必要なのか。

私は書く必要があるいくつかのカスタムSQLのinsertステートメントは、例えば、CSVファイルの名前ですが、私のデータベースはすでにすべての都市、別のテーブル(標準化)ながらプレーする必要がありま書subselectのinsertステートメントをルックアップのための都市に書き、そのID、もしていま保存されている手順にcread特別な技術を必要と.

私のinsertステートメントのようなものになっていくかもこの:

INSERT INTO PERSON (ID, NAME, CITY_ID) VALUES((SELECT NEW_GUID FROM CREATE_GUID), :NAME, (SELECT CITY_ID FROM CITY WHERE NAME = :CITY_NAME)

したいのでアプローチす。

役に立ちましたか?

解決

奥高尾にひっそりと建つ料亭。原が一切の仕事、時には利用します。

インポートした場合、CSVファイルをExcelで作成式を作成するINSERT文を文字列連結した。い場合はCSVファイルは3列が表示されるカラムA、B、Cラインは、書式が好きなの---

="INSERT INTO MyTable (Col1, Col2, Col3) VALUES (" & A1 & ", " & B1 & ", " & C1 & ")"

そのまま再現式についての列、コピー、ペーストの回答はテキストファイルに対するデータベースです。

うえで、原油-することが可能でかなりのコーポレート-ガバナンスの変化とダーティ"多種多様なレストランがたくさん仕事ができました!

他のヒント

どの場合はCSVでの時間、のファイルをExcelで、その書式を生成するためのデータがその希望を書き、簡単なConcat式の構築のためのSQLをコピーする方式毎に行います。また多数のSQLステートメントをドできるようになりました。います。

Fabio,

もちろん、何Vaibhavは多くすべきと思うかもしれないが、良い"クイックや汚れ"取得データをデータベース化します。

あなたが必要なこの時代に一部のタイプのスケジュール、そして信頼性の高い方法は負荷のCSVデータ"としてある場合がありますので、事業テーブルにおいてe customer_dataload)より、標準のSQL文を生成するために欠けます。

ないわからないFirebirdの構文が何かをしてもらいました。)

UPDATE person
SET id = (SELECT newguid() FROM createguid)

UPDATE person
SET cityid = (SELECT cityid FROM cities WHERE person.cityname = cities.cityname)

など。

通常、より高速に、より信頼性)のデータをデータベースのデータを直そうと試みるよりはるデータのアップロード。※または取引を可能にするために、ロールバック動作しない場合は!!

またCSVファイルインポートのテーブとしては、その後の書きるSQLクエリーは、必要なすべての変換、輸入テーブルに挿入し、その結果使用します。

そのようなもの:

<(負荷をCSVファイルをtemp_table-n city_name)>

挿入target_table

選択。n,c.city_idとして市

からtemp_table t,都c

る。city_name=c.city_name

素敵な先端の使用に関Excel、もらって快適なスクリプト言語Pythonのような、一部のタスクですやばく迅速にpythonスクリプトのように機能することができます。Excelや前加工の仕事です。

利用のcsvファイルとして外す。を利用することができSQL文をコピーからデータを外部テーブルを先テーブル-すべての可能性SQL.見 http://www.firebirdsql.org/index.php?op=useful&id=netzka

いいこと awk.

例えば、この情報をCSVファイル:

Bob,New York
Jane,San Francisco
Steven,Boston
Marie,Los Angeles

以下のコマンドをまとい、同じディレクトリとしてCSVファイル名 name-city.csv この例)。

$ awk -F, '{ print "INSERT INTO PERSON (ID, NAME, CITY_ID) VALUES ((SELECT NEW_GUID FROM CREATE_GUID), '\''"$1"'\'', (SELECT CITY_ID FROM CITY WHERE NAME = '\''"$2"'\''))" }' name-city.csv

タイプ awk --help ます。

が終了したこのVBAのスクリプトが便利です。すべての必要な変更は、Insertステートメントのテーブルからのカラム一覧(明らかに同じ順序でに、Excelファイル.

Function CreateInsertStatement()
    'Output file location and start of the insert statement
    SQLScript = "C:\Inserts.sql"
    cStart = "Insert Into Holidays (HOLIDAY_ID, NAT_HOLDAY_DESC, NAT_HOLDAY_DTE) Values ("

    'Open file for output
    Open SQLScript For Output As #1

    Dim LoopThruRows As Boolean
    Dim LoopThruCols As Boolean


    nCommit = 1 'Commit Count
    nCommitCount = 100 'The number of rows after which a commit is performed

    LoopThruRows = True
    nRow = 1 'Current row

    While LoopThruRows

        nRow = nRow + 1 'Start at second row - presuming there are headers
        nCol = 1 'Reset the columns
        If Cells(nRow, nCol).Value = Empty Then
            Print #1, "Commit;"
            LoopThruRows = False
        Else
            If nCommit = nCommitCount Then
                Print #1, "Commit;"
                nCommit = 1
            Else
                nCommit = nCommit + 1
            End If

            cLine = cStart
            LoopThruCols = True

            While LoopThruCols
                If Cells(nRow, nCol).Value = Empty Then
                    cLine = cLine & ");"                    'Close the SQL statement
                    Print #1, cLine                         'Write the line
                    LoopThruCols = False                    'Exit the cols loop
                Else
                    If nCol > 1 Then                        'add a preceeding comma for all bar the first column
                        cLine = cLine & ", "
                    End If
                    If Right(Left(Cells(nRow, nCol).Value, 3), 1) = "/" Then 'Format for dates
                        cLine = cLine & "TO_DATE('" & Cells(nRow, nCol).Value & "', 'dd/mm/yyyy')"
                    ElseIf IsNumeric(Left(Cells(nRow, nCol).Value, 1)) Then 'Format for numbers
                        cLine = cLine & Cells(nRow, nCol).Value
                    Else 'Format for text, including apostrophes
                        cLine = cLine & "'" & Replace(Cells(nRow, nCol).Value, "'", "''") & "'"
                    End If

                    nCol = nCol + 1
                End If
            Wend
        End If
    Wend

    Close #1

End Function

利用できる無料 csvsql 関係ではないかと思います。

  • インストールす これらの指示
  • 現在実行コマンドはこのようにインポートデータへのデータベースです。詳細は、上記リンクがないようなもの:

    csvsql --db firebase:///d=mydb --insert mydata.csv

  • 以下の作品とsqliteは、私が使用変換データを簡単に照会する形式

    csvsql --db sqlite:///dump.db --insert mydata.csv

オプション1:1-してくださいIBExert?IBExpert\ツール\データをインポート(試用またはお客様のバージョン)。

オプション2:2-アップロードcsvファイルを一時テーブルF_BLOBLOAD.3-を作成し保管手順を用いて3つの機能(f_stringlength,f_strcopy,f_MID) 横断すべての文字列、お引き分野の構築のために挿入します。

リンク:2: http://freeadhocudf.org/documentation_english/dok_eng_file.html 3: http://freeadhocudf.org/documentation_english/dok_eng_string.html

ツールにいたる勤務を抱え、も FSQL.

書きインポートコマンドで貼り付け FSQL での輸入は、CSVファイルのFirebirdます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top