• ベストアンサー

DBリンクエラーについて

DBリンクにて、プロシージャ(PKG)を起動すると エラーが発生してしまいました。 いろいろ調査したのですがよくわかりませんでした。。 申し訳ありませんが教えてください。 何か制約があるんでしょうか? ●エラー内容 ⇒【ORA-02064 分散処理はサポートされていません】 ●プロシージャ内容 ⇒ 更新処理(UPDATE文(副問合せ含む) ●環境 ⇒【ORACLE9i 9.2.0.6.0】

  • Oracle
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • mebun
  • ベストアンサー率45% (10/22)
回答No.2

エラーが発生する処理を具体的に教えて下さい。 例えばバインド変数で配列を使用しているのでしょうか。呼び出しフローとかトランザクションの考え方とか。OTNでの1,2はバインド変数の使い方(配列)の問題で、3はトランザクションがおかしいのではなおでしょうか。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>ORA-02064 >更新処理(UPDATE文(副問合せ含む) バインド変数を使用したLONG列の更新及びデータベースリンクとバインド変数の両方を参照する副問合せによる2番目の列の更新を試行した。 他には データベース・リンクを参照する副問合せを使用してリモート更新の配列処理を実行しようとした。 コーディネート・セッションでOUTパラメータまたは関数コールを使用するRPCプロシージャ・コールからコミットが発行された。 処置として リモート更新文を単純にしてください。 となっていますが。

furusako
質問者

補足

回答ありがとうございます。 私もオラクルのhpでこのエラー内容を 参照したのですが 文書が難しいので、よく理解ができませんでした。 具体的にどのようなSQLが 駄目なのかを教えていただきたいのですが。 たびたび申し訳ないですがおねがいします。

関連するQ&A

  • DBリンクの参照について

    オラクルのデータベースリンクについて教えて下さい。仮にデータベース"TEST_A"と"TEST_B"があります。 TEST_AからTEST_Bへデータベースリンクしようとしているのですが、TEST_Bのユーザ(1) ではログオンできるのですが、ユーザを(2)に変更するとログオン出来ません。 その時のエラーの内容としては... -------------------------------------------------"ORA_01017:ユーザ名/パスワードが無効です。ログオンは拒否されました。" "ORA_02063:先行のエラー・メッセージを参照してください。(データベースリンク名称)" ------------------------------------------------- これは権限かなにかの問題でしょうか? 説明不足かもしれませんが解決方法を教えて頂きたく宜しくお願い致します。 ※ 環境: ORACLE10g  また運用保守で Object Browser というソフトを使用しています。 上記のエラー内容はObject BrowserでDBリンクの接続を試みた時に表示されました

  • DB作成中のエラーについて

    現在「Oracle9.2.0.4.0」を使っています。 「Databese Configuration Assistant」の「データベース作成スクリプトの生成」で作成されたスクリプトを使って、データベースを作成しようとしております。 スクリプトの一部ですが、以下の内容です。 mkdir E:\oracle\admin\AAAA\bdump mkdir E:\oracle\admin\AAAA\cdump mkdir E:\oracle\admin\AAAA\create mkdir E:\oracle\admin\AAAA\pfile mkdir E:\oracle\admin\AAAA\udump mkdir E:\oracle\ora92\database mkdir E:\oracle\oradata\AAAA set ORACLE_SID=AAAA E:\oracle\ora92\bin\oradim.exe -new -sid AAAA -startmode m E:\oracle\ora92\bin\oradim.exe -edit -sid AAAA -startmode a E:\oracle\ora92\bin\orapwd.exe file=E:\oracle\ora92\database\PWDAAAA.ora password=change_on_install E:\oracle\ora92\bin\sqlplus /nolog @E:\oracle\admin\AAAA\scripts\CreateDB.sql    ~省略~ 上記の手順で処理が実行されて、「orapwd」の行でエラーが発生します。 エラーメッセージ 「OPW-00005: 同一名のファイルがあります。 - 削除または名前を変更してください。」 ステップごとに追った結果「oradim」の行で、「PWDAAAA.ora」が作成されるために発生するようです。 これは、無視しても良い物なのでしょうか? または、何らかの対処が必要なのでしょうか? よろしくお願いします。

  • Oracle DBリンクについて

    ローカルホストから、他のマスタDBにDBリンクを作成しました。 しかし、DBリンクは作成できなのにいざ参照しに行くと下記のエラーが出ます。 select * from Tablename@Linkname ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。 どうしてでしょうか、他のサイトにはこれで参照できるといっていたのですが... また、違う質問になりますがこれで参照しにいけるなら なんでSnapshotやマテリアライズドビューなどが存在しているのでしょうか? 初歩的な質問ですみませんがどなたか教えてください。

  • oracle 9i と SQL SERVER 2005 DBリンクにつ

    oracle 9i と SQL SERVER 2005 DBリンクについて とても困ってます。 よろしくお願いします。 仕事で、oracle 9iとSQL SERVER 2005をDBリンクさせて、oracle 9iのTableとSQL SERVER 2005のTableを結合させて、SELECT文を作成したいです。 本番環境は、DBサ―bとWebサーバは別々でとりあえずlocal開発環境を作成しています。 <確認したこと> ・global_names = Flase ・ODBCの設定はSQL SERVER 2005に接続確認しました。  →データソース名は、「SQLSRV」です。 ・inithsodbc.oraの設定    HS_FDS_CONNECT_INFO = SQLSRV    HS_FDS_TRACE_LEVEL = OFF ・LISTENER.ORAの設定(編集後再起動しました)  → (SID_DESC = (SID_NAME = HSODBC) (ORACLE_HOME = D:\oracle\Ora9IUTF) (PROGRAM = hsodbc) ・TNSNAMES.ORAの設定 HSODBC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID = HSODBC) ) (HS = OK) ) ・DBリンク作成(小文字を認識するため、ダブルクォーテーションで囲います)   CREATE DATABASE LINK DB_LINK_SQLSRV   CONNECT TO "ユーザ" IDENTIFIED BY "パスワード" USING 'HSODBC'; ・SELECT文   SELECT * FROM テーブル名@DB_LINK_SQLSRV; 上記の手順ですが、サービス名が解決できません。

  • DB生成のShellでエラー

    はじめまして ビギナーな質問で申し訳ありませんが、現在以下のような 構成でインストールを行っているのです。 dbassistで使用してDBを生成させるShellを作成して、その Shellをターミナルから実行させるとエラー(内容はエラー 内容を参照してください)となります。 このエラーはどのようにすると解決するのでしょうか? 解決策を知っている方は教えていただけないでしょうか お願いいたします。 また、init.oraの『control_files = 』で定義されている コントロールファイルが、現在の環境では存在していない のですが、このコントロールファイルはdbassistを実行した ときに生成されるものないでしょうか? なお、足りない情報等がありましたらご指摘くださいますよう お願いいたします。 現在の構成 OS :Solaris 8 Oracle:Oracle8.1.7 EE (64bit) メモリ:256MB インストール対象のHDDのパーティションは35GBフリー Swapは900MBフリーの状態です エラー内容 SVRMGR> SVRMGR> Connected. SVRMGR> ORA-27102: out of memory SVR4 Error: 22: Invalid argument SVRMGR> 2> 3> 4> 5> 6> 7> 8> 9> 10> CREATE DATABASE "genka" * ORA-01034: ORACLE not available SVRMGR> Disconnected. SVRMGR> SVRMGR> Server Manager complete.

  • DATABSE LINKについて

    現在Oracle10gとOracle11gのDataBaseLinkを行っているのですが、 DBLinkを作成し、データを取得しようとしたら、 「ORA-01017: invalid username/password; logon denied ORA-02063: 先行のエラー・メッセージを参照してくださいline(XXX.XXXX.CO.JP)。」の様なエラーがおきます。 以下に実行したSQLを書いています。 create database link ****.****.co.jp connect to user identified by **** using '****' ↑に書いたユーザとパスワードで、 「Connect ユーザ/パスワード@Link先DB」をすれば繋がるのは確認出来ています。 色々ネットで調べてみたものの、原因が掴めていません。 何の要因から起こるエラーなのか、分かりません。 何かご存知の方がいらしたら、教えて頂けますか? 宜しくお願いします。

  • DBに変なものが

    DB(Oracle9)のテーブルをドロップしたら変なものが出来ました。 テーブル一覧にこんなものが BIN$ANCbPZXHQJyThN1/cukAow できたんですがどうやって削除すればいいんですか? エラーは下記の様になっていました。 ORA-00933: SQL command not properly ended よろしくお願いします。

  • 異なるDBの値比較方法

    まったく同じジョブの内容でスケジューリング方法を変えて実行した時、その前後でDBの内容が同一であるか検証する方法を考えています。 DBはoracle9、テーブル数は約100強、エクスポートすると約500MBです。 検証方法は、処理前に本番データをエクスポートし、それを検証環境にインポート、検証環境でスケジュールを実行して、まったく同じ結果を得られるかを検証します。 以下の案を思いつきましたが、イマイチぴんときません。何かいい方法を教えてください。 案1 DBをDBリンクで接続し、オブジェクトブラウザのオブジェクト比較機能を使う。 →簡単にできるが、結果を得るの時間がかかりすぎる。 案2 DBをDBリンクで接続し、検証用プロシージャを作成して比較する。 →user_tables, user_tab_columnsなどを使うプロシージャの作成が面倒。 案3 処理実行後に、本番と検証環境でそれぞれテーブルごとにエクスポートし、エクスポートファイルをUNIXでソートした上で、uniqコマンドで比較する。 →これが現実的?

  • データベースリンク

    RedHatLinux Oracle9i Windows2000 Oracle8.0.6 という二つのDBがいます。 Oracle9iからCREATE DATABASE LINKをつかって、 Oracle8を参照します。 CREATE DATABASE LINK XXXX_DBLINK CONNECT TO aaaaa IDENTIFIED BY bbbbb USING 'XXXX' として、データベースリンクは作成することができました。 しかし、 select * from test@XXXX_DBLINK とすると、 ORA-12154: TNS: サービス名を解決できませんでした。と なってしまいます。 なにがわるいのでしょうか? よろしくお願いいたします。

  • データーベースリンク

    以前にも、データベースリンクについての質問をさせていただきました。さらに問題が発生し、困っております。 【環境】 RedHatLinux Oracle9i Windows2000 Oracle8.0.6 という二つのDBがいます。 Oracle9iからCREATE DATABASE LINKをつかって、 Oracle8を参照します。 【データベースリンク作成】 CREATE DATABASE LINK XXXX_DBLINK CONNECT TO aaaaa IDENTIFIED BY bbbbb USING 'XXXX' でDBLINKを作成し、 select * from test@XXXX_DBLINKとして、 結果を受けることはできました。 そこで、以下のSQLを実行したときに、SQLエラーが発生してしまいました。 【問題のSQL】 select * from test@XXXX_DBLINK where COLUMN1=:hensu1 and COLUMN2=:hensu2 【実行結果】 SQL実行中に以下のエラーが発生しました。 ORA-01026: バインド・リストにサイズが4000を超える複数バッファが存在しています。 ORA-02063: 先行のエラー・メッセージを参照してくださいline(TRINITY_DBLINK) と2つのメッセージからなっています。 【※】 ・変数パラメータとしては、1つの場合、SQLエラーは発生しません。 ・変数パラメータが2つ以上の場合発生します。 ・変数の部分を固定で、条件を指定すれば、正常にSQLが実行されます。 質問は、この問題を解消するためにどのような対処方法がありますでしょうか? CREATE DATABASE LINK時にオプションを設定することや、 Oracle8もしくは、Oracle9iを構築する際に設定する数値など ありましたら、お教えください。