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

varcharフィールドが広いと、MySQLリンクサーバーでopenqueryを使用すると、要求された変換がサポートされないというエラーが発生します

    私のテストでは、CAST(field as char(4000))を追加することがわかりました。 問題も解決しました。

    MySQL5.1データベースで次のものを作成しました。

    create table tmp_patrick (summary_text varchar(4096));
    insert into tmp_patrick values ('foo');
    

    SQL Server 2008 R2 SP1(10.50.2500)で、MySQL ODBCドライバー64ビット(バージョン5.1または5.2w)を使用して以下を実行した場合:

    select * from openquery(MYSQL, 'select summary_text from scratch.tmp_patrick')
    

    エラーが発生します:

    OLE DB provider "MSDASQL" for linked server "MYSQL" returned message "Requested conversion is not supported.".
    Msg 7341, Level 16, State 2, Line 1
    Cannot get the current row value of column "[MSDASQL].summary_text" from OLE DB provider "MSDASQL" for linked server "MYSQL". 
    

    しかし、CASTを追加すると :

    select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')
    

    その後、それは動作します。 char(4001)へのキャストは失敗します。

    4000文字の制限がどこから来ているのか私にはわかりません。



    1. Transact-SQLでの連結

    2. mac os x10.8.2でpostgresql9.2のデフォルトユーザー(通常は「postgres」)のパスワードをリセットするにはどうすればよいですか?

    3. Oracle結合-従来の構文とANSI構文の比較

    4. ORA-01653:表領域で表を拡張できませんORA-06512