A5:SQL Mk-2

開発のこと、日々のこと

varchar2型に格納できる文字数について

ホーム フォーラム A5:SQL Mk-2掲示板 varchar2型に格納できる文字数について

このトピックには3件の返信が含まれ、2人の参加者がいます。6 時間、 26 分前 松原正和 さんが最後の更新を行いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #3363 返信

    荒木

    お世話になります。

    varchar2(1000)で設定したフィールドに文字を入れようとすると
    ・半角500文字
    ・全角334文字
    ・全角333文字&半角3文字
    のいずれかまでしか入りませんでした。
    以下の環境では全角500文字または半角1000文字入るのが正しいかと思いますが、一度ご確認いただけないでしょうか。

    環境
    データベース Oracle Database 12c Standard Edition Release 12.1.0.2.0 – 64bit Production
    データベースキャラクタセット JA16SJISTILDE
    各国語キャラクタセット AL16UTF16
    A5:SQL Mk-2 version 2.13.3 64bit

    #3384 返信

    松原正和
    キーマスター

    荒木さんこんにちは。

    SJISのOracleデータベースを早急には用意できなかったのですが、エラーとしては、

    「ORA-12899: 列”TABLE_SCHEMA”.”TABLE_NAME”.”COLUMN_NAME”の値が大きすぎます(実際: NN、最大: MM)」
     
    のような感じでしょうか?。
     
    半角500文字というのは1文字2バイトにも見えますが、全角 334文字というのはちょっと不思議ですね。1文字3文字にしても、1文字余計に入る気がしますし、半角の1文字2バイトとも整合性が取れません。

    あと、長さセマンティクスはバイト・セマンティクス(varchar2(1000 byte))ということでよろしいでしょうか?。
     
    ちょっと不思議ですね。

    #3389 返信

    荒木

    エラーは「ORA-01461:LONG値はLONG列にのみバインドできます。」でした。
    長さセマンティクスはバイト・セマンティクスです。
    最初に書いておくべきでした。申し訳ありません。
    環境のことで追記しますが、Oracleクライアントを使わず直接接続しています。

    ちなみに、Microsoft Access2010で接続したところ、1000バイト(半角1000文字、全角500文字、全角1文字&半角998文字等)入力でき、超えた場合は
    「ORA-12899: 列”TABLE_SCHEMA”.”TABLE_NAME”.”COLUMN_NAME”の値が大きすぎます(実際: NN、最大: MM)」
    のエラーが出ました。半角1文字追加で「実際: 1001、最大: 1000」、全角1文字追加で「実際: 1002、最大: 1000」と出ます。

    よろしくお願いします。

    #3408 返信

    松原正和
    キーマスター

    荒木さんこんにちは。
     
    直接接続機能ですが、使用しているUniDACというライブラリですが、ソースコードは付属するものの、難読化されていてちょっと直せないかもしれないです。
     
    とりあえず、InstantClientでも良いのでOracle Clientを導入して回避されるとよいかと思います。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
返信先: varchar2型に格納できる文字数について
あなたの情報:




コメントは受け付けていません。