問題タブ [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.
sql - Oracle 分散データベースで LOB を処理する最良の方法
Oracle dblink を作成すると、ターゲット テーブルの LOB 列に直接アクセスできなくなります。
たとえば、次のように dblink を作成します。
この後、次のようなことができます:
列が LOB の場合を除き、次のエラーが発生します。
これは文書化された制限です。
同じページでは、値をローカル テーブルにフェッチすることを提案していますが、それは...ちょっと面倒です。
他のアイデアはありますか?
postgresql - Solaris 10 での PostgreSQL DbLink のコンパイル
Sun C 5.9 SunOS_sparc 2007/05/03 および gmake を使用して、solaris 10 で dblink を正常に構築した後。
gmake installcheck を実行したところ、次の出力が得られました。
一部のテストが失敗する原因となった相違点は、ファイル「./regression.diffs」で確認できます。上記のテスト サマリーのコピーは、ファイル "./regression.out" に保存されます。
regression.diffs ファイルの最初のエラー:
psql:dblink.sql:11: エラー: ライブラリ "/apps/postgresql/ lib/dblink.so" を読み込めませんでした: ld.so.1: postgre s: 致命的: 再配置エラー: ファイル /apps/postgresql/lib/dblink .so: シンボル PG_GETARG_TEXT_PP: 参照されたシンボルが見つかりません
最新の dblink ソースを使用して postgreSQL バージョン 8.2.4 を実行しています。
この問題を解決するために私が何をする必要があるか誰かが知っていますか? ありがとう。
oracle - Oracle DBLINK をコピーすると、Char(1) が Char(3) に変わるのはなぜですか?
2 つのデータベースがあり、CHAR 列を含む既存のテーブルをデータベース A からデータベース B に転送したいと考えています。
データベース A は Oracle 9i で、エンコーディングは WE8ISO8859P1 で、CHAR(1 char) 型の列が少なくとも 1 つあるテーブル「foo」が含まれています。データベース A はサード パーティのセットアップの一部であるため、テーブルを変更できません。
データベース B は私自身の Oracle 10g データベースであり、さまざまな理由から AL32UTF8 エンコーディングを使用しており、このデータベースに foo をコピーしたいと考えています。
データベース B からデータベース A へのデータベース リンクをセットアップします。次に、次のコマンドを発行します。
* select としてテーブルバーを作成 * from #link#.foo;*
データはうまくコピーされますが、列の型を確認すると、CHAR(1 文字) が CHAR(3 文字) に変換されていることに気付き、データベース B のデータをクエリすると、すべてスペースが埋め込まれます。 .
水中のどこかで、オラクルは自分のバイトと文字を混同していると思います。CHAR(1 byte) は CHAR(1 char) などとは異なります。私はそれについてすべて読みました。
データ型がパディングされた CHAR(3 文字) に変わるのはなぜですか? Oracle がこれを行うのを止めるにはどうすればよいですか?
編集: Oracle 9 と 10 の 2 つの特定のパッチレベル間で CHAR を転送する必要があるようです。これは実際にはバグのようです。わかり次第、更新を投稿します。その間: 私が説明したようにデータベース間で CHAR を移動しようとしないでください。VARCHAR2 は正常に動作します (テスト済み)。
編集 2:答えを見つけてここに投稿しました: Oracle DBLINK をコピーするときに Char(1) が Char(3) に変わるのはなぜですか? 私の問題は解決されたので、残念ながら私は自分の答えを受け入れることができません。
oracle - DBLINKを介してOracleユーザー定義型を参照しますか?
私は、Oracleの2つの異なるインスタンスで2つの異なるOracleスキーマで作業しています。これらのスキーマ間でデータを転送するために、いくつかのタイプとタイプコレクションを定義しました。私が遭遇している問題は、型がまったく同じ定義(スキーマで両方のセットを作成するために使用される同じスクリプト)を持っていても、Oracleはそれらを互換性のない異なるオブジェクトと見なしていることです。
着信リモートタイプオブジェクトを同じローカルタイプとしてキャストすることを考えましたが、dblink間でタイプを参照することについてエラーが発生します。
基本的に、私は次のことを行っています。
REMOTEプロシージャコールはLocalTypeとRemoteTypeを異なるオブジェクトタイプとして扱うため、MyTypeを理解できないため、これは失敗します。
MyTypeの宣言も次のように試しました。
しかし、dblink間でタイプを参照することについて別のエラーが発生します。タイプ間のキャストも機能しません。キャストするには、dblink全体でリモートタイプを参照する必要があるためです。同じ問題、同じエラーです。また、2つのインスタンス間で交差するオブジェクトとしてSYS.ANYDATAを使用しようとしましたが、同様のエラーが発生します。
何か案は?
更新:
同じOIDを使用してDBLINKの両側でオブジェクトタイプを宣言しようとしましたが(を使用して手動で取得SYS_OP_GUID()
)、Oracleは2つのオブジェクトを異なるものとして「認識」し、「間違った数またはタイプの引数」エラーをスローします。
oracle - dblink を介した Oracle SQL タイプ
A と B (Oracle 9) の 2 つのスキーマがあります。A には B への dblink があります。B には、A から呼び出すパッケージがあります。B パッケージのプロシージャは、さまざまなカウント結果を返すことができます。この理由から、コレクションを返す方が良い方法だと思います。
しかし、dblink による SQL 型の使用がサポートされていないため、A スキームからは tt_rad 型を使用できません。DBMS_SQL はサポートされていないカーソルです。同じ OID を持つタイプを作成することはできません。
一時テーブルを使用すると思います。しかし、まずそれはあまり良くありません (リモート関数が値を返した後、呼び出し側はリモート テーブルからコレクションを選択する必要があります)。また、一時テーブルでの作業が遅くなる恐れがあります。
おそらく、代替相互作用を知っているのは誰ですか?
sql-server - Oracle から SQL Server にクエリを実行 - メタデータの更新を強制する
私は SQL Server の開発者であり、Oracle で仕事をしています。DBA は、SQL Server データベースを指す DBLink を Oracle に設定しました。SQL Server データのビューを作成してから、Oracle 側のビューを作成して追加の Oracle データと結合します。
問題: SQL Server でビューの定義を変更すると、「Select * From myview@dblink」でも「列が無効です」というエラーが表示されます。TOAD を閉じて再度開くと問題が解決するように見えますが、実際の問題は、接続をリセットせずに Oracle にメタデータを強制的に再読み込みさせる方法です。
oracle - 別のユーザーが所有するデータベース・リンクを作成するためのOracle構文
dbリンクを作成するための一般的な構文は次のとおりです。
ただし、作成後に別のアカウントがDBリンクを所有するようにしたいと思います。これを行う方法はありますか?
以下は機能しません。
java - 異なる物理サーバー上のoracleデータベースとpostgresqlデータベースの間でデータベースリンクを使用することは可能ですか?
一部のデータがイントラネットサーバーのpostgresqlデータベースにローカルに保存され、その他の関連データがエンタープライズOracle10g2r2データベースに保存されるイントラネットアプリケーションを合理化しようとしています。
私がやりたいのは、どちらかのデータベースボックスにビューを作成することです。これは、簡単にするために、各データベースの1つのテーブルを両方のフラットビューに結合することは重要ではありません。これにより、イントラネットアプリケーション内から簡単なクエリを実行できるようになります。
現在、両方のデータベースからオブジェクト構造にデータをプルしてから、これらのオブジェクトに対して検索/検索を実行する必要があります。私はこの方法が本当に好きではなく、ビューを作成できるようにしたいと思っています。
これが不可能な場合は、この状況を処理するための最良の方法に関するいくつかの提案があります。
私のイントラネットスタックは、Linux、postgresql、tomcat(java)、apacheです。また、OracleDBは10gr2です。
ティム
database - Oracle 汎用 DB リンクが機能しない
オラクルの hsodbc 汎用データベース リンク ドライバーを使用して、オラクル 10gr2 データベース サーバーから postgresql データベースにアクセスしようとしています。すべてが構成されていると思いますが、リモート クエリを試行した後、sqlplus プロンプトからこのエラーが表示されます。
Linuxコマンドラインから「isql」を使用すると(つまり、odbc接続のみをテストします)、クエリは機能します。
「isql intranet」と入力します (intranet は odbc 接続の名前です)。プロンプトが表示され、select * from temp_user と入力すると、画面に 157 レコードが返されます。
したがって、odbc 構成が正しくセットアップされていることはわかっています。これが私がオラクルに対して行うことです。
リスナーを再起動しました。その状態は以下の通りです。
次に、データベース サーバーのコマンド ラインから sqlplus に入り、次の操作を行います。
データベース リンクを作成する イントラネットは、「イントラネット」を使用して、パスワードで識別されるユーザーに接続します。
これは成功です。
しかし、私が走るとき
エラーが表示される
私は少なくとも良い一日を構成に戻って試してみましたが、常にこのエラーが発生します。
どなたか良いアイデアをお持ちの方、