質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

Q&A

解決済

2回答

4855閲覧

Oracle Databaseの行データを、別のOracle Databaseにコピーしたい

rikusoso

総合スコア15

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

0グッド

0クリップ

投稿2018/11/27 08:23

oracle初心者のため、ご教示のほどよろしくお願いいたします。

oracle databaseでA5:SQL Mk-2を使用してcsvエクスポートを行い、
別のoracle databaseにcsvインポートを行うと、下記エラーとなってしまいます。
「フィールド'C_COLUMN'にText型としてアクセスすることはできません」
別のdatabaseにインポートする方法が知りたいです。

下記に、私が行った操作を記載します。
oracle Databaseが2つあります。仮にDB1とDB2とします。
それぞれ、同じテーブル(T_TABLE)と同じカラム(C_COLUMN)があります。
C_COLUMNのデータ型はRAW(16)です。

DB1には、既にRAW型のデータが1件入っています。データは下記のように入っていたとします。
「15 02 4A 41 6A E0 4E 62 25 0B 96 1D 7E 31 46 52」

DB1DB2
T_TABLET_TABLE
C_COLUMN (RAW(16))C_COLUMN (RAW(16))
15 02 4A 41 6A E0 4E 62 25 0B 96 1D 7E 31 46 52(null)

A5:SQL Mk-2 を使用して、DB1からCSV出力を行いました。
出力されたCSVデータは下記の通りです。

C_COLUMN
15 02 4A 41 6A E0 4E 62 25 0B 96 1D 7E 31 46 52

このCSVデータを、A5:SQL Mk-2 を使用してDB2にインポートしようとしたとき、冒頭のエラーとなってしまいました。

知りたい内容は下記の2点です。
1.CSV出力したデータ(RAW型)を、A5:SQL Mk-2ではない別の方法でインポートする手段があれば教えてほしいです。既に大量のデータをCSV出力してしまっているので、手段があれば実行したいです。

2.そもそもCSV形式にする方法以外に、適した方法があれば教えてほしいです。RAW型のデータを正常にインポートできれば問題ないです。

どなたかご教示いただけますと幸いです。
以上です。よろしくお願いいたします。

検証環境
Oracle Database 11g
A5:SQL Mk-2 Version 2.11.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

RAW型をCSVに落しちゃダメです。無理矢理テキストに変換しますから文字化けして当然です。

DB LINKが使えればINSERT ... SELECT で持って行けます。
DB LINKが使えなければ、データ・ポンプ・エクスポートデータ・ポンプ・インポート で移行してください。

なお、初心者で A5:SQL Mk-2 を使っているとSQLをきちんと覚えられないことが多いですから、半年くらいsqlplusを使っては?

投稿2018/11/27 11:33

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rikusoso

2018/12/05 06:41

Orlofskyさん 回答ありがとうございます。 csvに出力すると文字列に変換される旨がわかりました。 非常に為になりました、ありがとうございました。
guest

0

ベストアンサー

エクスポート時に変換されちゃってるんじゃないでしょうか。
RAWおよびLONG RAWデータ型の概要

RAWは、VARCHAR2文字データ型と同じく可変長のデータ型です。ただし、Oracle Net Services(ユーザー・セッションをインスタンスに接続)およびインポート/エクスポート・ユーティリティでは、RAWデータやLONG RAWデータの送信時に、文字変換は実行されません。それとは対照的に、Oracle Net ServicesとImport/Export Utilityは、データベース・キャラクタ・セットとユーザー・セッションのキャラクタ・セットが異なる場合に、これらのキャラクタ・セット間でCHARデータ、VARCHAR2データおよびLONGデータを自動的に変換します。

expdp/impdpコマンドを使用されてはどうでしょうか。

投稿2018/11/27 08:34

編集2018/11/27 08:35
sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rikusoso

2018/12/05 06:39

saziさん 回答ありがとうございます。 export時に既に文字列に変換されている旨がよくわかりました。 再度DBからexportすることが難しかったため、HEXTORAWを使用して無理やりinsertを行いました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問