問題タブ [dblink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dblink - 別のユーザーが作成したストアド プロシージャを dblink 経由で実行する
ユーザーUSERAでデータベースAにストアド プロシージャPROCAを作成し、USERB に実行権限を与えました。USERBでログインすると、データベース A でこのストアド プロシージャを実行できました。
ここで、データベースXにログインし、dblink Ainkを作成しました。この dblink は、ユーザー USERB でデータベース A に接続します。以下の構文を使用してストアド プロシージャを実行すると、エラーなしで実行されましたが、ストアド プロシージャが行った DML 操作はコミットされません。
Databse X からストアド プロシージャを呼び出すコード
何が問題なのかを提案してください。
database - 別のスキーマにあるDBLINKを使用してOracleでSELECTする方法は?
Oracle DBMS (11g) と次の構成があります。
- DBユーザー「MYUSER」
- 2 つのスキーマ「MYUSER」と「SCHEMA_B」
- ユーザー「MYUSER」は「SCHEMA_B」にアクセスでき、そのテーブルに対する読み取り権限を持っています
- 「SCHEMA_B」にある公開DBリンク「DB_LINK」
- DBユーザー「SCHEMA_B」を直接使用すると、DB_LINKが機能します
質問: 「MYUSER」としてログオンした場合、「SCHEMA_B」の DB リンクを使用してテーブルにアクセスするための正しい構文は何ですか? そうすることはまったく可能ですか?
私はすでにいくつかの星座を試しましたが、すべてうまくいきませんでした:
表示されるエラー メッセージは次のとおりです。ORA-02019。00000 - "リモート データベースの接続の説明が見つかりません"
ご提案ありがとうございます。
sql-server - Postgresql 8.3 から SQL Server (2000 および 2008) への dblink を作成するにはどうすればよいですか?
2 つの SQL Server (1 つの SQL Server 2000 と 1 つの SQL Server 2008) からデータを読み取る必要がある Postgresql データベースがあります。
SQL Server への 2 つの dblink を設定したいと考えています。
グーグル、フォーラム、ドキュメントを読んだ後、私は製品の準備ができているものを見つけるのに苦労しています。
どのツールを使用できますか?
oracle - Oracle の DBLINK での CLOB 挿入のパフォーマンスの向上
あるデータベースから別のデータベースに CLOB をコピーしようとすると、Oracle (11g) のパフォーマンスが低下します。いろいろ試してみましたが、これを改善できませんでした。
CLOB は、レポート データの収集に使用されます。これは、レコードごとに非常に大きくなる可能性があります。リモート データベース (WAN 経由) でプロシージャを呼び出してデータを構築し、その結果を本社のデータベースにコピーして比較しています。一般的な形式は次のとおりです。
パフォーマンスを向上させるために、リモート サイトの結果をテーブルのリモート コピーに蓄積します。手順の実行の最後に、データをコピーして戻そうとします。このクエリは非常に単純です。
私が見ているパフォーマンスは、1 秒あたり約 9 行で、平均 CLOB サイズは 3500 バイトです。(このサイズは VARCHAR2 の制限である 4k を超えることが多いため、CLOB を使用しています。) 70,000 レコード (珍しくありません) の場合、転送に約 2 時間かかります。メソッドを使用してみましcreate table as select
たが、これでも同じパフォーマンスが得られます。SQL*NET のチューニングにも数時間以上を費やしましたが、改善は見られません。Arraysize を変更してもパフォーマンスは向上しません (ただし、値を小さくするとパフォーマンスが低下する可能性があります。
古い exp/imp メソッド (テーブルをリモートからエクスポートし、インポートして戻す) を使用してコピーを取得することはできますが、これははるかに高速に実行されますが、これは私の自動レポートではかなり手動です。このデータを選択するためのパイプライン化された関数を作成して、それを使用して CLOB を BYTE/VARCHAR2 チャンク (追加のチャンク番号列) に分割することを検討しましたが、誰かが試して見つけた場合はこれを実行したくありませんでした問題。
ご協力いただきありがとうございます。
oracle - 2つのOracleインスタンス間にDBリンクを作成する方法
2つのOracleインスタンス間にDBリンクを作成する方法。AとBが2つのインスタンスであるとしましょう。インスタンスAからインスタンスBのデータにアクセスしたい。
oracle - dblink でテーブルのクエリを実行するとプロシージャがハングする
シェル スクリプトからプロシージャを呼び出そうとしています。そのプロシージャは、リモート データベースのデータをデータベースに大量に挿入します。つまり、ここで行っているのは、dblink を介してテーブルにクエリを実行し、その情報をローカル テーブルに挿入することです。
Quest Toad や Oracle SQL Developer などの DB IDE から直接実行すると、手順は 3 分未満で実行されます。sqlplusコマンドラインでプロシージャを実行すると、3分もかかりません。しかし、シェル スクリプトを使用してプロシージャを呼び出すと、UNIX のプロセスが停止し、Oracle サーバーで使用率の高いネットワーク イベントが発生し、db セッションが終了しません。
したがって、ここでの問題は、これと同じ方法で実行されている別の手順があり、これだけが ksh スクリプトで実行中に問題を引き起こしているということです。
以下に、ksh スクリプトで sqlplus からプロシージャを呼び出すために使用している 2 つの方法を示します。
元のスクリプト:
別:
およびそれが使用するSQLスクリプト
手順のクエリは次のようなものです。
oracle - Oracleでdbリンクを介してカーソルにアクセスする
データベース リンクを介してリモート プロシージャを呼び出すストアド プロシージャを作成する必要があります。このプロシージャはカーソルを返します。このカーソルを反復しようとすると、ORA-01001: 無効なカーソル エラーが発生します。いくつかのフォーラムで、db リンクを介してカーソルにアクセスすることは単に許可されていないことを読みましたが、それについては確信が持てません。誰でもそれを解決する方法を知っていますか? ここで重要なのは、既存のリモート メソッドを変更できないことです。
以下は私の手順のコードです:
リモートメソッドのインターフェースは次のとおりです。
pkg_resultset.generic_cursor には次の定義があります。
database - postgresql スロー クエリ (dblink および内部結合)
別のデータベースに接続する必要があるため、dblink を含むこのクエリがあり、非常に遅いようです (わずか 124 レコードで 50.343 秒)。速くする方法はありますか?以下はコードです:
oracle - dbリンクを使用した分散トランザクションの回避
私は、AとBの2つの異なるデータソースを処理する必要があるSpringJavaEEアプリケーションで作業しています。
アプリケーションは一貫した方法でAとBを更新する必要があるため。1つの更新が失敗すると、プロセス全体が失敗し、ロールバックを実行する必要があります。
アプリケーションの実装方法について、2つの異なるアイデアがあります。
- 両方の更新を分散トランザクションXAに含める必要があります。このアプローチは、パフォーマンスの点でコストがかかります。さらに、Bソースはまもなくオフになり、XAインフラストラクチャ全体を維持することがボトルネックになる可能性があります。
- データベースAからデータベースBへのOracleDBリンクを設定し、Oracleが更新の同期を処理している間、アプリケーションが単一のデータソースとローカルトランザクションでのみ機能していると信じ込ませることができます。Bがオフになるときは、Bの更新を削除して、DBリンクをオフにします。
これらの2つのシナリオについてどう思いますか?
oracle - ORA-02070:データベースはこのコンテキストではサポートされていません
私は次のようなクエリがあります
さて、このクエリを実行すると、
ORA-02070: database does not support in this context
このエラーは、v$sessionからリモートデータベースにデータを挿入した場合にのみ発生します。他のテーブルでも問題なく動作します。
この問題とその回避策を知っている人はいますか?