当方ではORACLE8.0.5 OSはsolaria2.6を使用しています

CREATE SEQUENCEで作成したものを
別のDBに移行したいのですが移行先のDBにもすでに同じ名前のSEQUENCEがあるため
まずこれを削除してから移行元のDBのSEQUENCEをIMPORTしようと考えております

質問ですがUSERに作成されたSEQUENCEをEXPORTする方法を教えてください
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ユーザモードで出来ます。


exp (いろいろ省略) owner=ユーザ名

シーケンスだけは出来ません。

シーケンスだけの移行であればEXP,IMPするより、Drop,Createするのをお勧めします。

手動で出来ないほどシーケンスがある場合は別ですが、なかなかそんなケースは無いのではと考えます。

補足説明があれば、それについてもお答えしますよ。
以上です。
    • good
    • 0
この回答へのお礼

ありがとう御座います。確かにSEQUENCEをつくり直すほうがかんたんでした。

お礼日時:2001/09/26 09:36

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

QORACLE の export/import ユーティリティのユーザ単位のimport のときは・・?

oracle7にある表、view,indexなどをoracle8に持っていこうとしています。
ユーザ単位で表やindexをexport し oracle8 に持っていったのですが、元々はindexと表
が別々の表領域にあったのが、すべて同じ表領域になってしまいます。
ユーザ単位でのexportの場合は表領域の情報は格納されないそうですが、
このような場合、一番効率よく、元々の情報(アイテムごとの表領域にもどす)
の形にimport するにはどのようにすればいいのですか?

ちなみにFULLでのEXPORT/IMPORTは使わないでする方法を探しています。

Aベストアンサー

Oracle7の表領域名はわかりますか?

これがわかれば、同じ名前で表領域をOracle8に作成してください。
後はIMPORTを実行するユーザにUnlimited Tablespace権限があれば、
Export元と同じ名前の表領域にデータが格納され、Indexも元の名前の
表領域に作成されます。

Export元と同じ名前の表領域がImport先に存在しない場合、Importを
実行するユーザのデフォルトの表領域にデータが格納されます。

QPL/SQLでCREATE SEQUENCEの呼び出し

いつも参考にさせていただいてます。

select文で取得した日付の年下2桁をもとに
順序を取得したいと思っています。

CREATE SEQUENCEは

seq_id_04
seq_id_05
seq_id_06
  :
  
というように年ごとに作成されてあります。

seq_id_yy.nextval
yyを取得した年に置き換えて実行したいのですが、
なかなかうまくいきません。

初めてのPL/SQLのため説明文におかしな部分があったらすみません。
ご存知の方がいましたら、ぜひぜひご教授ください。

Aベストアンサー

こんにちわ。

Execute immediate 文を使えばできる筈です。
先ずは、
 vSQL varchar2(256);
 vSeqNo NUMBER(8);
のように変数が定義されていたとして、
vSQL にSequence をSelect するSQL 文を作成します。
こんな感じです。
→ vSQL := 'SELECT seq_id_' || to_char(sysdate, 'YY') || '.nextval from dual';

そうしたら、
PL/SQL ブロックの中で、
execute immediate vSQL into vSeqNo;
として下さい。

QOracle8iのデータをOracle8へ移行する方法

Oracle8iでエクスポートしたファイルをOracle8へインポートすると
「IMP-00010:有効なエクスポート・ファイルではありません。
ヘッダーは検証に失敗しました。」
と出て失敗してしまいます。
講習会のテキストを読んでみると、「この方法ではうまくできないこと
のあります」とだけ書いてあり、どうすればうまく行くのかが
わかりません。
元々下位バージョンへ移行するということで、「ムリなんじゃないかなぁ~」
と思ってやってみたらやっぱりダメでした。
何か良い方法はないのでしょうか・・?

Aベストアンサー

ORACLE8iのエクスポートファイルじゃないとダメなんですか?
8i環境のテーブルのレコードを8環境に移行したいというのであれば、Oracle8iではなく、Oracle8のexpを使用してエクスポートファイルを作り、Oracle8のimpでデータを8環境に入れてやればいいはずです。

QDB2 create tableコマンドでエラーになる

現在redhat9にdb2 v8を導入しています。
そこでテーブルを作成したいのですが、エラーとなりうまくいきません。
どこを修正すればテーブルが作成できるのか教えてください。
また、テーブル作成後に値を入れたいのですが、insertについてのコマンドのアドバイスもお願いします。

CREATE TABLE emp (empno INTEGER ,ename CHAR2(10) ,mgp INTEGER,sal NUMERIC(5,2) ,deptn INTEGER);

INSERT INTO EMP VALUES(221000,'TAYLOR',220000,880.60,220000);

よろしくお願いします。

Aベストアンサー

CREATE文を拝見した所、「ename」の列のデータ型が間違っています。

CHAR(10)かVARCHAR(10)になります。
CHARとVARCHARの違いが分からないようでしたら再度質問していただけると助かります。

おそらくOracleのVARCHAR型とVARCHAR2型が存在しているというところで混乱されているかと存しますが。。


INSERT文については特に問題はなのですが出来れば以下のように記述するとよろしいかと思います。


INSERT INTO EMPempno,ename,mgp,sal,deptn) VALUES(221000,'TAYLOR',220000,880.60,220000);

以上宜しくお願い致します。

Qdb2setupでdb2inst1が作成されない

お世話になります。

redhat9にDB2ver8を導入しようとしています。
db2setupを実行しGUIインストールを行いました。
しかし、セットアップ完了画面でなぜかdb2inst1だけ作成されておらず、db2start等のコマンドができません。新しくdb2inst1とdb2grpを作成して、再度インストールを実行してもうまくいきません。
色々調べてみたのですが、いまいちよい事例が見つからないので、質問させていただきますので、よろしくお願いします。

以下に失敗していると思われるログを抜粋します。

DB2 ファイル・セットのインストール:.......成功
DB2 ライセンスの登録:.......成功
デフォルト・グローバル・プロファイル・レジストリー変数の設定:.......成功
DB2 Administration Server の作成:.......成功
エラー:現在の DB2INSTANCE を "db2inst1"
に切り替えることができませんでした。戻りコードは "-2029059916" です。

インスタンス・リストの初期化:.......成功
DB2 インスタンス構成のカスタマイズ:.......成功
エラー:DBI1131E ユーザー ID db2inst1 が無効です。

説明:

与えられたユーザー ID にアクセスしようとして失敗しました。
次の状態のいずれかが発生していると考えられます。

o このユーザー ID がシステムにない。

o このユーザーのホーム・ディレクトリーが正しく設定されていない。

o DB2 で必要なユーザー属性のいずれかが設定されていない。

o このユーザーの UID が 0 である。

お世話になります。

redhat9にDB2ver8を導入しようとしています。
db2setupを実行しGUIインストールを行いました。
しかし、セットアップ完了画面でなぜかdb2inst1だけ作成されておらず、db2start等のコマンドができません。新しくdb2inst1とdb2grpを作成して、再度インストールを実行してもうまくいきません。
色々調べてみたのですが、いまいちよい事例が見つからないので、質問させていただきますので、よろしくお願いします。

以下に失敗していると思われるログを抜粋します。

DB2 ファイル・セッ...続きを読む

Aベストアンサー

No.3です。

No.4 の、AS400さんの回答と重複しますが、
初回インストール時は、インスタンスは作成されなかったけれども、インスタンスユーザーのホームディレクトリに、sqllibディレクトリが作成され、ひととおりDB2が操作できる環境が整っていたはずなので、AS400さんの回答の通りでよかったと思います。

その後、DB2のアンインストールをされたとのことですが、DB2のCD-ROMメディアに入っている、アンインストール用のシェルスクリプト(db2_deinstall)を実行したということでよいでしょうか?

このシェルスクリプトでアンインストールをかけた場合は、以下の情報が残ったままとなってしまい、完全にDB2をアンインストールすることはできません。

1) DB2の各種ユーザー情報(+ホームディレクトリも)
2) DB2インストール履歴情報
3) DB2サービスポート設定
4) DB2インストールディレクトリ

※3)、4)、は残ったままでも、再インストールに影響はないと思いますが、1)、2)の情報が残っていると、場合によってはうまくインストールできません。

今回の原因は、初回インストール時に作成されたユーザー、db2inst1 が存在していたにも関わらず、インスタンスユーザー作成画面で、「新規ユーザー」として db2inst1 を指定した為に、ユーザーが重複している等のエラーにより、インストールが失敗しているのではないでしょうか。
(※ユーザー確認方法 = cat /etc/passwd )
この場合、「既存のユーザー」にして、db2inst1 を指定してインストールを進められると思いますが、気分的にさっぱりしたいという意味も込めて、一旦、DB2を完全に消去して再チャレンジしたほうがよいと思います。

以下の手順でDB2を完全にアンインストールすることができます。

---------------------------------------------

(以下rootユーザーで実行)

1. db2_deinstallの実行(省略します)

2. DB2各種ユーザーの削除

$ userdel -r ユーザー名

3. DB2インストール履歴情報の削除

$ rm -fR /var/db2

4. DB2サービスポート設定の削除

$ vi /etc/services

???等として、ファイルを開き、db2*** のエントリを削除

5. DB2インストールディレクトリの削除

$ rm -fR /opt/IBM/db2

念の為、一度OSを再起動してから、db2setupを実行してみて下さい。

---------------------------------------------

また、既にご覧になられているかもしれませんが、以下の情報が参考になると思います。

「DB2 UDB V8.2 for Linuxクイックインストール」
http://www-6.ibm.com/jp/software/data/developer/library/techdoc/db2v82_install_linux.html

No.3です。

No.4 の、AS400さんの回答と重複しますが、
初回インストール時は、インスタンスは作成されなかったけれども、インスタンスユーザーのホームディレクトリに、sqllibディレクトリが作成され、ひととおりDB2が操作できる環境が整っていたはずなので、AS400さんの回答の通りでよかったと思います。

その後、DB2のアンインストールをされたとのことですが、DB2のCD-ROMメディアに入っている、アンインストール用のシェルスクリプト(db2_deinstall)を実行したということでよいでしょうか?

この...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報