プロが教える店舗&オフィスのセキュリティ対策術

以前にも、データベースリンクについての質問をさせていただきました。さらに問題が発生し、困っております。

【環境】
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を構築する際に設定する数値など
ありましたら、お教えください。

A 回答 (2件)

>実は、CSEというSQLPLUSに近いツールで実行しております。



CSEでのバインド変数の定義で、大きなサイズを用意して要るんだと思いますが、
データベースリンクの制限を考えると、SQLの実行の仕方を変えるくらいしか
方法が無いように思います。

>文字コードをあわせなければならないでしょうか?

文字コードは、Netサービスが解決するお約束事項なので、
特に気にする必要はありません。
    • good
    • 0

>ORA-01026: バインド・リストにサイズが4000を超える複数バッファが存在しています。



どのように、":hensu1"と":hensuu2"を定義されているか判らないのですが・・・

バインド変数の定義を見直せば、解決すると思いますよ。
(必要な桁数を意識してバインド変数を定義すべし)

この回答への補足

実は、CSEというSQLPLUSに近いツールで実行しております。
変数の宣言や、初期化などは一切していません。
このSQLを実行すると、変数に対して、入力を促すポップアップが
出るツールです。

COLUMN1、COLUMN2ともに、4000バイトを超えるような値をセットしてはいません。

データベースリンクで
互い(Linux上Oracle9、Windows上Oracle8)の文字コードをあわせなければならないでしょうか?

補足日時:2005/11/08 12:31
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A