• ベストアンサー

OracleでUnicode対応にしたい

オラクルでUnicode対応にしたいのですが やりかたがいまいちわからず・・・ こんなかんじでやったのですが CREATE TABLESPACE TEST DATAFILE 'D:\TEST.ORA' CHARACTER SET UTF8; どうもうまくいきません ご存知の方よろしくおねがいします

  • ayato
  • お礼率25% (16/64)

質問者が選んだベストアンサー

  • ベストアンサー
  • soakun
  • ベストアンサー率66% (6/9)
回答No.1

文字コード設定はデータベース単位です。 表領域毎に CHARACTER SETを指定することはできません。 SQL直で書く場合は CREATE DATABASE文を使用します。 CREATE DATABASE文の構文は Oracleのマニュアル 「SQLリファレンス」を参照してください。 また、文字コードに関するドキュメントは 「National Language Support Guide」を参照してください。

関連するQ&A

  • UNICODE対応ってどういうことなのかわかりません

    VC++とかでUNICODE対応というと文字列をwchar_t型で扱うことなのかなと思うのですが、その場合UTF-8ってどういう扱いになっているのでしょうか? ウィキペディアを見ると、インターネットではUTF-8が主流であるようなことが書かれています。 UTF-8はアスキー文字セットとも互換性があるようなので、char型で文字列を扱うのかなと思いました。 それなのに、VC++でUNICODE対応の設定にするとwchar_tで文字列を扱うようなので、UTF-8がどういう扱いになっているのかよくがわからないのです。 どなたかお答え頂けないでしょうか。 よろしくお願いします。

  • ORACLEのテーブルスペースについて

    OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) でSQL*Loaderを実行していたのですが、 "エラーコード -2 STDERR 書込不可"? ↑ (ログを消してしまってはっきりは覚えてないのですが) というエラーログが出力され、その後、ロードする テーブルのTABLESPACEについて "ORA-01536: 表領域 TABLESPACEXXXに対して割り当てられた領域を使い果たしました。" というORACLEのエラーが発生し始めました。 その後、CREATEは上記ORACLEエラーにより実行不可、 その後のINSERTは途中までできていたのですが、途中から 同様のORALCEエラーにより実行不可、 という状態になっています。 (直前まで通常にデータの更新は行えていました) ちなみに該当するTABLESPACEに割り付けられたデータ ファイルにはまだ十分領域が空いています。 該当するTABLESPACEのデータファイルに対する割付領域を "ALTER TABLE ~" で拡大できたと思うのですが、 方法がはっきり分かりません。 どなたかご存知の方、また、このエラー自体の原因が 分かる方、いらっしゃったらお願いします。

  • 表領域の作成について

    表領域を作成してインポートしたら下記のエラーが出力されて困っています。 表領域の作成の仕方が駄目でエラーが出力されてしまったのでしょうか。 下記のCREATE TABLESPACE文で表領域を作成しています。 ---------------------------------------------------------------------- CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\ora92\DAT_01.DBF' SIZE 32767M, 'D:\oracle\oradata\ora92\DAT_02.DBF' SIZE 32767M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO; ---------------------------------------------------------------------- コマンドプロンプトでimpコマンドを実行したら、下記のエラーなどが出力されました。 ---------------------------------------------------------------------- IMP-00003: Oracleエラー1659が発生しました。 ORA-01659: nを超えるMINEXTENTSを表領域T_DATに割当てできません。 IMP-00003: Oracleエラー1658が発生しました。 ORA-01658: 表領域T_DATにセグメント用のINITIALエクステントを作成できません。 ---------------------------------------------------------------------- 何がいけないのかが正直わかりません。 申し訳ありませんがアドバイスいただけませんでしょうか。 宜しくお願いします。

  • oracle10g データベースの追加について

    oracle10g でcreate databaseをしたいのですが、 ERROR at line 1: ORA-01501: CREATE DATABASE failed ORA-01100: database already mounted となってしまいます。 create文は以下のようになります。 ご教授下さい SQL> CREATE DATABASE testdb MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE '/opt/oradata/testdb/system01.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE 2000M EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/opt/oradata/testdb/sysaux01.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/opt/oradata/testdb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE "UNDOTBS1" DATAFILE '/opt/oradata/testdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 ('/opt/oradata/testdb/redo01.log') SIZE 10240K, GROUP 2 ('/opt/oradata/testdb/redo02.log') SIZE 10240K, GROUP 3 ('/opt/oradata/testdb/redo03.log') SIZE 10240K USER SYS IDENTIFIED BY syspass USER SYSTEM IDENTIFIED BY systempass;

  • マニュアル通りにDB作成してるのですが、エラーになります

    以下のガイドを参照してDBを作成しようとしているのですが、エラーがでて作成できません。 Oracle9i データベース管理者ガイド リリース2(9.2) 手順6:create database文の発行 ページ2-18 環境:Oracle9i 9.2.0 どなたかアドバイスお願いします。 -----------実行結果---------------------------------------- SQL> create database mynewdb 2 USER SYS IDENTIFIED BY pz6r58 3 USER SYSTEM IDENTIFIED BY yltz5p 4 LOGFILE GROUP 1 ('c:\oracle\oradata\mynewdb\redo01.log') SIZE 100M, 5 GROUP 2 ('c:\oracle\oradata\mynewdb\redo02.log') SIZE 100M, 6 GROUP 3 ('c:\oracle\oradata\mynewdb\redo03.log') SIZE 100M 7 MAXLOGFILES 5 8 MAXLOGMEMBERS 5 9 MAXLOGHISTORY 1 10 MAXDATAFILES 100 11 MAXINSTANCES 1 12 CHARACTER SET US7ASCII 13 NATIONAL CHARACTER SET AL16UTF16 14 DATAFILE '/ORACLE/ORADATA/mynewdb/system01.dbf' SIZE 325M REUSE 15 EXTENT MANAGEMENT LOCAL 16 DEFAULT TEMPORARY TABLESPACE tempts2 17 DATAFILE 'c:\oracle\oradata\mynewdb\temp02.dbf' 18 SIZE 20M REUSE 19 UNDO TABLESPACE undotbs 20 DATAFILE 'c:\oracle\oradata\mynewdb\undotbs01.dbf' 21 SIZE 200M REUSE AUTOEXTEND ON NEXT S120K MAXSIZE UNLIMITED; DATAFILE 'c:\oracle\oradata\mynewdb\temp02.dbf' * 行17でエラーが発生しました。: ORA-25139: CREATE TEMPORARY TABLESPACE????????????? -----------実行結果----------------------------------------

  • オラクル表領域データファイルの削除について

    まず、経緯から書きますと、 レコードINSERT処理(Access)にて表領域不足エラーが出たため、 以下コマンドにてデータファイルを追加しました。 ALTER TABLESPACE USERS ADD DATAFILE '/db3/oradata/ora805/datafile09.dbf' SIZE 1000M; ところが、以下のエラーが出ました。 エラー行: 1: エラーが発生しました。 ORA-19510: 207360ブロックのサイズ設定に失敗しました   (ファイル"/db3/oradata/ora805/datafile09.dbf"、ブロックサイズ=2048)。 ORA-27059: skgfrsz: ファイル・サイズを削減できません。 SVR4 Error: 28: No space left on device Additional information: 2 ORA-19502: ファイル"/db3/oradata/ora805/datafile09.dbf"の書込みエラー。   ブロック番号: 207105(ブロックサイズ=2048) ORA-27063: skgfospo: 読込み/書込みのバイト数が正しくありません。 SVR4 Error: 28: No space left on device Additional information: -1 Additional information: 131072 まず、このエラーの詳細が正確に理解できていない状況なのですが、 なんとなく、これは、空き容量がないところに1000Mのデータファイルを 作成しようとして、大きすぎて作成出来ませんというエラーを返された、 と解釈しました。 それで、sqlplusにてデータファイルの一覧を見てみると、 追加しようとしていたdatafile09.dbfは確認できませんでした。 表領域 ファイル名            サイズ 自動追加 ---------------------------------------------------------- USERS /db1/oradata/ora805/datafile01.dbf 4194304 NO 0 USERS /db1/oradata/ora805/datafile02.dbf 2097152000 NO 0 USERS /db1/oradata/ora805/datafile03.dbf 2097152000 NO 0 USERS /db2/oradata/ora805/datafile04.dbf 2097152000 NO 0 USERS /db2/oradata/ora805/datafile05.dbf 1048576000 NO 0 USERS /db2/oradata/ora805/datafile06.dbf 996147200 NO 0 USERS /db3/oradata/ora805/datafile07.dbf 2097152000 NO 0 USERS /db3/oradata/ora805/datafile08.dbf 1887436800 NO 0 ところが、OS(Solaris5.6)に戻って、 /db3/oradata/ora805 フォルダの一覧を確認しますと、 以下のように datafile09.dbf が出来ていました。 -rw-rw---- 1 oracle dba 2097154048 13:52 datafile07.dbf -rw-rw---- 1 oracle dba 1887438848 13:52 datafile08.dbf -rw-rw---- 1 oracle dba 1048578048 14:32 datafile09.dbf ここから、質問なのですが、 1)なぜ、datafile09.dbf は OSでファイルが認識されているのに、 sqlplusでデータファイルを一覧したときには表示されないのか。 2)datafile09.dbf をいったん消したいのですが、 OSレベルで datafile09.dbf を削除してもオラクルに悪影響は 出ないのでしょうか。正しい消し方がわかりません。 以上です。 どなたかアドバイスいただけないでしょうか? よろしくお願いいたします。 Ver:Oracle8 OS:SunOS 5.6(Solaris)

  • Oracleエラー(権限の関係?)

    <環境>マシン:IBM RX6000 OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) 上記環境で、急にCREATEができなくなりました。 (1)ORA-01536: 表領域 TABLESPACE1に対して割り当てられた領域を使い果たしました。 というエラーが出たのですが、 空き領域を整理し、データファイルを新しく割り付けた後も同様のエラーが 発生しました。 それまでの処理は、 2)AユーザからテーブルデータEXPORT後BユーザへIMPORT ※※補足※※ Aユーザのロール:CONNECT、DBA Bユーザのロール:CONNECT、RESOURCE だったのですが、この状態だとBにIMPORTできない ため、 IMPORT前にBにDBAロールを追加、IMPORT後に削除 3)SQL*Loader実行すると、 エラーコード-2 STDERRに関する何かのエラーが出、 (↑ログが残っていないため詳細不明) その後、再度SQL*Loaderを実行しても、 (1)のエラーが発生して処理終了 4)Bユーザに関して、TABLESPACE1に関しても、その他 のTABLESPACE(TABLESPACE2)に関しても、CREATE不可 INSERTも件数が多いと途中で(1)のエラー発生 ※※補足※※ Aユーザに関しては、TABLESPACE2にはCREATE可能 (TABLESPACE1はテスト未) 最終的には、BユーザにDBAロールを追加して、 実行可能になったのですが、元々はDBAロールを持たせずに 処理できていたので、原因が分かりません。 EXPORT&IMPORT時に「権限をIMPORTするか?>Yes」を選択 したことや、DBAロールを追加&削除したことが影響するので しょうか? ただ、最近Oracleサーバの調子が悪かったため、その影響も あるかもしれません。 全く原因が分かりませんので、心当たりのある方、 よろしくお願いします。

  • GmailでUnicode(UTF-8)をフィルタするには

    Gmailで受信したメールを他の複数のアドレスに条件毎に転送しようとしています。 件名(日本語)で振り分けたいのですが、文字セットがISO-2022-JPの場合は フィルタテストすると検索結果に表示されますが、 文字セットがUnicode(UTF-8)のメールはフィルタにかからないようです。 Unicode(UTF-8)のメールもフィルタする方法があるのでしょうか。

  • oracle ファンクションの実行

    oracleでファンクションを作成しております。 このファンクションをVisualBasicより実行しているのですが、 以下のエラーが出力される状況です。 ORA-06550: 行1、列8: PLS-00553: キャラクタ・セット名が認識されません。 ORA-06550: 行0、列0: どのように対処すれば良いか分らず、 どなたか分る方がいらっしゃればご教授頂けますと 幸いです。 ★作成したファンクション CREATE OR REPLACE FUNCTION HINODE.H_HND8010U ( p_in_yoyakuid in varchar2) RETURN varchar2 --********************************************************* --* □ プロシージャ名 --* H_HND8010U --********************************************************* IS vSum varchar2(10); BEGIN vSum := p_in_yoyakuid; RETURN vSum; END; /

  • datapumpの実行方法について

    いつもお世話になっております。 datapumpの実行方法(expdp/impdp)について、ご存知の方がいらっしゃいましたら、ご教授の程お願い致します。 ------------------------------ ●環境  Oracle 11g (11.2.0.3) 以下の手順で、エクスポート/インポート テストを行ったのですが、 expdpで"tables"を指定するとエラーとなり実行できませんでした。 full=y(データベース全体)は動きました。 tablesで指定するものは、"CREATE TABLE"で作成したテーブル名ではないのでしょうか。 また、テーブルスペースを削除"drop tablespace tbl01"したのですが、 expdpでデータベース全体をエクスポートしたものから、impdpしても 削除したものが戻せませんでした。 impdpのコマンドに誤りがあるのでしょうか。 ●expdp実行 ----- ・tablespace作成 $ sqlplus / as sysdba SQL> create tablespace tbl01 datafile '+data/testdb/datafile/tblsp1' size 10m autoextend off; ----- ・sequence作成 SQL> create sequence seq1; ----- ・TABLE作成 SQL> CREATE TABLE TEST_TBL(USER_ID VARCHAR2(8) NOT NULL, DEPT_NO VARCHAR2(8)) tablespace tbl01; ----- ・INSERT実行(5件分) begin for i in 1..5 loop INSERT INTO TEST_TBL (USER_ID, DEPT_NO) VALUES (seq1.nextval, '1234') ; commit; end loop; end; / ----- ・expdp使用する為の準備 ディレクトリの作成と read/write 権限の付与 $ sqlplus / as sysdba SQL> create directory expdp_dir as '/u01/tpump'; SQL> grant read,write on directory expdp_dir to system; ----- ・expdb実行 $ expdp system/pass dumpfile=TEST_DIR:expdp_all.dmp logfile= TEST_DIR:expdp_all.log full=y ===== "SYSTEM"."SYS_EXPORT_FULL_01"を起動しています: system/******** dumpfile=TEST_DIR:expdp_all.dmp logfile= full=y BLOCKSメソッドを使用して見積り中です... オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATAの処理中です -中略- SYSTEM.SYS_EXPORT_FULL_01に設定されたダンプ・ファイルは次のとおりです: /u01/tpump/expdp_all.dmp ジョブ"SYSTEM"."SYS_EXPORT_FULL_01"が11:31:19で正常に完了しました ===== $ expdp system/pass tables=TEST_TBL dumpfile=TEST_DIR:expdp_tbl.dmp logfile= TEST_DIR:expdp_tbl.log ===== "SYSTEM"."SYS_EXPORT_TABLE_01"を起動しています: system/******** tables=TEST_TBL dumpfile=TEST_DIR:expdp_tbl.dmp logfile= BLOCKSメソッドを使用して見積り中です... BLOCKSメソッドを使用した見積り合計: 0 KB ORA-39166: オブジェクトSYSTEM.TEST_TBLが見つかりません。 ORA-31655: ジョブに対してデータまたはメタデータ・オブジェクトが選択されていません ジョブ"SYSTEM"."SYS_EXPORT_TABLE_01"が完了しましたが、2エラーが11:33:54で発生しています ===== ●impdp実行 $ impdp system/pass dumpfile=TEST_DIR:expdp_all.dmp logfile= TEST_DIR:impdp_all.log ===== マスター表"SYSTEM"."SYS_IMPORT_FULL_01"は正常にロード/アンロードされました "SYSTEM"."SYS_IMPORT_FULL_01"を起動しています: system/******** dumpfile=expdp_dir:expdp_all.dmp logfile= full=y オブジェクト型DATABASE_EXPORT/TABLESPACEの処理中です ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します ORA-31684: オブジェクト型TABLESPACE:"TEMP"はすでに存在します ORA-31684: オブジェクト型TABLESPACE:"USERS"はすでに存在します ORA-39083: オブジェクト型TABLESPACEの作成が次のエラーで失敗しました: ORA-01119: データベース・ファイル'+DATA/testdb/datafile/tblsp1'の作成中にエラーが発生しました。 ORA-17502: ksfdcre:4 ファイル+DATA/testdb/datafile/tblsp1の作成に失敗しました ORA-15005: name "testdb/datafile/tblsp1" is already used by an existing alias -中略- ※以下のORAエラーが多数発生 例:ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します 例:ORA-39151: 表"SYSTEM"."REPCAT$_PRIORITY_GROUP"が存在します。スキップのtable_exists_actionのため、すべての依存メタデータおよびデータはスキップされます 例:ORA-39111: 依存オブジェクト型OBJECT_GRANT:"SYSTEM"はスキップされ、ベース・オブジェクト型VIEW:"SYSTEM"."SCHEDULER_PROGRAM_ARGS"はすでに存在します -中略- オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICSの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/POST_TABLE_ACTIONの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/TABLE/TRIGGERの処理中です オブジェクト型DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMAの処理中です オブジェクト型DATABASE_EXPORT/AUDITの処理中です ジョブ"SYSTEM"."SYS_IMPORT_FULL_01"が完了しましたが、146エラーが20:14:48で発生しています =====