sql >> データベース >  >> RDS >> Mysql

RODBCでMySQLの文字セットを設定するにはどうすればよいですか?

    ODBCとRODBCに精通していません 、しかし、上記のドキュメントのスニペットを読んだところ、SET NAMES 'utf8'; MySQLのSQLダイアレクト の一部です。 、したがって、データベースからデータを取得するために使用する可能性のある他のSQLステートメントと同じように実行します。

    (テストされていない)のようなもの:

    sqlQuery(myChannel, query = "SET NAMES 'utf8';")
    

    ここで、myChannel odbcConnect()によって返される接続ハンドルです 。

    RMySQLパッケージではなくRODBCを使用している理由はありますか?私は、RMySQLを使用して、R内からすべての複雑なデータセットを広範囲にデータ処理および取得した経験があります。

    更新: いくつか 証拠 つまり、少なくとも1つの時点で、そのSET NAMES MySQLODBCドライバーで非アクティブ化されました。自信がある場合は、データベースに直接アクセスして(mysql経由で)文字を読み取ることができます。 またはMySQLのGUIフロントエンドの1つ)、SET NAMESを複製してみてください。 します。以下は、MySQLマニュアル からのものです。 :

    A SET NAMES 'x' statement is equivalent to these three statements:
    
    SET character_set_client = x;
    SET character_set_results = x;
    SET character_set_connection = x;
    

    SET NAMESの代わりにこれらの3つのSQLステートメントを実行してみることができます それが機能するかどうかを確認します。

    同じマニュアルには、SET CHARACTER SETも記載されています。 、SET NAMESと同じように使用できます :

    SET CHARACTER SET charset_name

    SET CHARACTER SET SET NAMESに似ています ただし、character_set_connectionを設定します およびcollation_connection character_set_databaseへ およびcollation_databaseSET CHARACTER SET x ステートメントは、次の3つのステートメントと同等です。

    SET character_set_client = x;
    SET character_set_results = x;
    SET collation_connection = @@collation_database;
    

    collation_connectionを設定する また、c haracter_set_connectionを設定します 照合に関連付けられた文字セットに(SET character_set_connection = @@character_set_databaseを実行するのと同じです )。 character_set_connectionを設定する必要はありません 明示的に。

    SET CHARACTER SET 'utf8'を使用してみてください 代わりに。

    最後に、どの文字セット/ロケールで実行していますか? Windowsを使用しているようです-これはUTF8ロケールですか?また、Qで混乱が生じていることにも注意してください。データをMS Accessにインポートしてから、ODBCにエクスポートしたとのことです。 MySQLにエクスポートしたということですか? ODBCは、さまざまなデータベースとの通信を可能にする接続ドライバーであり、「エクスポート先」にできるものではありませんでした。

    あなたは本当にMySQLのデータですか? RODBC経由でMSAccessに接続して、そこからデータを読み取ることができませんでしたか?

    データがMySQLにある場合は、RMySQLパッケージを使用してデータベースに接続し、データを読み取ってみてください。



    1. エイリアスによるグループ化(Oracle)

    2. IF条件を使用したMySQLJOIN

    3. Microsoft AccessレポートをPDFに変換する方法(3つの方法)

    4. フルパスからファイル名とパスを解析します