• 締切済み

ORA-22866について

DBのインポートが出来ない状況で、1週間ほど悩んで済ます いろいろ調査してみたのですが、キャラクタセットの変更等 どうも、うまくかないみたいです。 内容) 以下のようなSQL文で、ORA-22866のエラーが出ます。 <<実行したSQL文>> CREATE TABLE FOO (A CLOB); <<返ってくるエラー>> ORA-22866: デフォルトのキャラクタ・セットの幅が固定されていません。 そこで質問なのですが、デフォルトのキャラクタ・セットの幅を 固定するにはどうしたら良いのでしょうか? 是非、ご教示ください。 環境) db:ORACLE8.1.6 os:windows2000 server

みんなの回答

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

こちらにこの質問にぴったりと思われる内容が記述されておりますのでご参考に。 http://www02.so-net.ne.jp/~khayashi/ora_clob.html 尚、これはGoogledeで「ORACLE キャラクタ・セット 幅」をキーワードにして検索した結果見つけたものです。

参考URL:
http://www02.so-net.ne.jp/~khayashi/ora_clob.html
furusako
質問者

お礼

解決いたしました 互換パラメータのバージョンを 8.05に指定してたのを 8.10に変更したらうまくいきました

furusako
質問者

補足

早速の解凍ありがとうございました 私も提示されましたURLは拝見しまして以前に 指示どおりおこなったのですが、うまくいきませんでした。 というより、このURLの対策間違い?のような気がします。 ●URL指示どおりに行った場合 固定長キャラクタセットは(JA16sJIJfixed) は、各国文字キャラクタセットには指定できるのですが 普通のキャラクタセットには指定できませんでした(プルダウンメニューに選択が無い) ⇒CHARACTER SET句には、固定幅マルチバイトキャラクタセットは指定できない為 私がなにか勘違いしてるんでしょうか??

関連するQ&A

  • ORA-14459: GLOBALキーワードがありません。

    ORA-14459: GLOBALキーワードがありません。 以下のSQLを実行したところエラーになりました。 GLOBALキーワードとは何でしょうか?原因を教えてください。 SQL> CREATE TEMPORARY TABLE TEST AS SELECT SYSDATE FROM DUAL; CREATE TEMPORARY TABLE TEST AS SELECT SYSDATE FROM DUAL * 行1でエラーが発生しました。: ORA-14459: GLOBALキーワードがありません。 ORACLE 10g Windows 2008

  • create databaseがうまくいきません。。

    databaseを新規に作成したいのですが 今使用しているDB(Oracle 10g Express Edition )は インストール時にデフォルトでデータベースを 作成してしまうため、 「create databese」のsql文を実行すると以下のエラーが出てしまいます。 すでにマウントってどういうことなのでしょうか。 ORA-01501: CREATE DATABASE文でエラーが発生しました。 ORA-01100: データベースはすでにマウントされています。 今存在するDB名が分かれば「drop」コマンドで 削除を試みようと思っているのですが DB名を参照する方法もよく分かりません。 どなたかご教授お願いします。

  • ORA-01861について

    Oracleで同一インスタンスの別スキーマに同じテーブル構成を作り開発環境としています。 そこで下記のSQL文を実行しようとすると、あるスキーマでは正常に検索されるけど別のスキーマでは 「ORA-01861 リテラルがフォーマット文字列と一致しません」 とのエラーメッセージが出力されます。 また困ったことに別マシンから同様の検索を行うとどのスキーマでも正常に検索が行われます。 Net8とかOracleクライアントの設定の問題でしょうか? DBサーバはOracle10g、クライアントは前者のマシンがOracle8i、後者のマシンにOracle9iがインストールされています。 【対象SQL文】 SELECT * FROM (SELECT TEMP.*, ROWNUM AS RM FROM (SELECT TEST.COL1, TEST.COL2 FROM TEST WHERE (COL1 = 'Dummy') AND COL2 = '1' AND DATE_COL <= '2005-11-04 12:00:00.0' -- ※この行に対して「ORA-01861」が発生しています。 ) TEMP ) WHERE RM >= 1 AND RM <= 300 ORDER BY RM /

  • VB.NET ORA-12170

    http://okwave.jp/qa/q8420174.html ↑ VB.NETで作成したアプリでこちらの質問で無事解決し、違う環境で試したところORA-12170の タイムアウトエラーが発生しました。 SQL*Plusからの接続は問題ありません。 わからないのはWEBアプリの方は接続できるのに、コンソールアプリの方がこのエラーになってしまいます。 どちらのアプリの接続文字列も同じData Sourceを指定してます。 「db1」がTNSNAMES.ORAに記述している識別子になります。 WEBアプリ側 (Web.configに記述) <connectionStrings> <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1" providerName="System.Data.OleDb" /> </connectionStrings> コンソールアプリ側 (INIファイルに記述) ConnectionString=Provider=OraOLEDB.Oracle;Data Source=db1;Password=pass1;User ID=user1 一般的にはDBサーバにネットワークがつながってないなど単純な理由のようですが、 WEBアプリは接続できるので、そういうことはあり得ないと思います。 コンソールアプリの問題と思うのですが、どんな原因が考えられるでしょうか?

  • SQLスクリプト内で、${変数}と記述しても値を認識できない?

    USER.TABLE_LNK_TRG.shにて、トリガ作成スクリプトUSER.TABLE_LNK_TRG.sqlをコンパイルしようとしています。 USER.TABLE_LNK_TRG.shとUSER.TABLE_LNK_TRG.sqlともに 変数ORACLE_SID_1の値としてdb1、 変数ORACLE_SID_2の値としてdb2 が入っているはずなのですが、USER.TABLE_LNK_TRG.sql内では ${ORACLE_SID_1}と${ORACLE_SID_2}がそのまま文字列として解釈され (変数の値であるdb1、db2にはならない)、コンパイルに失敗します。 逆にUSER.TABLE_LNK_TRG.sql内で、${ORACLE_SID_1}と${ORACLE_SID_2} を使わず、直接db1、db2と記述すると成功します。 トリガ作成スクリプトUSER.TABLE_LNK_TRG.sql内で、${変数}は使えないのでしょうか? 環境はOSはSolaris、DBはOracle9i、シェルはBシェルです。 _______________________________________________________________ ~USER.TABLE_LNK_TRG.sh~ #!/bin/sh ORACLE_SID_1="db1" ORACLE_SID_2="db2" #トリガコンパイル sqlplus aaa/aaa <<-EOF @USER.TABLE_LNK_TRG.sql quit EOF exit ______________________________________________________________ ~USER.TABLE_LNK_TRG.sql~ CREATE OR REPLACE TRIGGER USER.TABLE_LNK_TRG BEFORE UPDATE ON USER.TABLE FOR EACH ROW declare begin update TABLE@${ORACLE_SID_1}_lnk set col = :new.col; update TABLE@${ORACLE_SID_2}_lnk set col = :new.col; exception when others then null; end; / _______________________________________________________________ ※${ORACLE_SID_1}、${ORACLE_SID_2}のままコンパイルされるので、  ${ORACLE_SID_1}_lnkのDB環境、${ORACLE_SID_2}_lnkのDB環境が存在せずコンパイルエラー。  逆に直接db1、db2と記述するとdb1_lnkのDB環境、db2_lnkのDB環境が存在するので正常にコンパイル。

  • 正しいSQLなのに「ORA-00936: 式がありません。」となる

     DBサーバを3台用意して、あるSQLを実行したところ、2台では期待した結果が得られたのですが、1台では「ORA-00936: 式がありません。」のエラーになってしまいます。  SQLの余分な空白を削除すると「右カッコがありません」「FROMがありません」等とエラーメッセージが変わるので、SQLの途中までしか認識されていない様子です。  SQLは2段階のサブクエリーで構成されており、全体の長さは1k程度です。  2台のPCでは問題なく動作するので、SQLが間違っていることはありません。  また、サブクエリーの中で「UNION ALL」を使っているのですが、これを「UNION」とするとエラーは起きません。  なにか、原因として考えられることはないでしょうか?  PCの環境は、   OS = WinXP SP2   DB = Oracle 9.2.0.1 、同一dmpファイルをインポートした状態 となっていますが、それぞれ別の者がインストール作業を行ったので、若干の違いがあるかも知れません。(インストール時のメモでは違いはありません)

  • ORA-1036??

    突然本題ですが、 PL/SQLで条件によりINSERTかUPDATE処理を行いたいのです。 コンパイルは通りましたが、実行すると、 ORA-1036 というエラーが出ます。 マニュアルには ORA-1036:変数のname/numが無効です。 原因:ユーザー・サイドにバインド・コンテキストを見つけられません。 解決方法:バインドされている変数がSQL文に存在することを確認してください。 とあります。 insertやupdateの項目を何度もチェックしましたが、間違っていないと思います。 このエラーがでる可能性というのはどういう場合があるのか是非教えていただきたいのです。 チェックをしたものの、変数の見落としか、あるいは別の可能性があるのか知っている方がいましたら教えてもらえるとすっごく助かります。 あと、バインド・コンテキストとはなんでしょうか? 調べてみましたが、調べ方が悪いのか見つけられませんでした。

  • データベースのインポートができません(MySQL)

    ●質問の主旨 下記のサイトを見ながら、データベースのテーブルを インポートしようとしていますが、エラーが出ます。 この場合、phpmyadminのどこを確認すればよいでしょうか? ご存知の方、ご教示願います。 http://www.dbonline.jp/phpmyadmin/export-import/index3.html ●開発環境 windows8 xammp1.8.1 ●エラーの内容(添付画像) エラー 実行した SQL: -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL のメッセージ: #1007 - Can't create database 'mydb10'; database exists ●インポートの内容(mydb.sql) -- phpMyAdmin SQL Dump -- version 3.5.2.2 -- http://www.phpmyadmin.net -- -- ホスト: 127.0.0.1 -- 生成日時: 2013 年 4 月 20 日 08:27 -- サーバのバージョン: 5.5.27 -- PHP のバージョン: 5.4.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mydb10`; -- -------------------------------------------------------- -- -- テーブルの構造 `db10` -- CREATE TABLE IF NOT EXISTS `db10` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `address` text NOT NULL, `tel` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- テーブルのデータのダンプ `db10` -- INSERT INTO `db10` (`id`, `name`, `address`, `tel`) VALUES (1, 'あああ', 'いいい', '111'), (2, 'ううう', 'えええ', '222'), (3, 'おおお', 'かかか', '333'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    • ベストアンサー
    • MySQL
  • MySQL文字化け「表」について

    1.DBの設定。 [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 2.コマンドプロンプトより接続(musqldがUTF設定のため、SJIS変換) SET NAMES SJIS; 3.表の作成 create table table1( id int, name varchar); 4.表に追加 INSERT INTO table1(item,name) VALUES("1","表"); INSERT INTO table1(item,name) VALUES('1','表'); ⇒どちらのSQL分でもDBには、表 という文字がNullで格納されます。  (1 は格納されています。) 質問1 "表"はSJISで文字化け?するというのをどこかで見た覚えがあるのですが '表'でもInsはできないものなのでしょうか。 "であろうと'であろうと、表は SJIS環境ではエラーになるのでしょうか。 質問2 このままでは、コマンドプロンプトから文字化けする?ため 「表」という文字を含むInsert検証ができません・・・。 コマンドプロンプト以外で、ターミナルに使えるツールがあれば ご教授お願いします。(phpMyAdminも除外でお願いします。)

    • ベストアンサー
    • MySQL
  • ORA-12571パケット書き込みエラーについて

    たまにですが、VBの業務アプリを動かしてると途中で落ちる現象が出ています。 環境 DB:Oracle9i 9.2 言語:VB6 以下のエラーがログに残されてました。 登録、更新は利用者はその時間帯はしていないとは言っていましたが、していたのかもしれません。 原因が特定できず、同じ現象を出せませんので対応のしようなく、困っています。 以下、ログ内容 --------------------------------------------- 2005/11/25 11:49:50,DbDynaset,SQL実行エラー, ORA-12571: TNS: パケットの書込み機に障害が発生しました。 --------------------------------------------- どなたかアドバイスお願い致します。