ODBC経由でオラクルデータを参照しています。
通常問題なく参照できるのですが、たまに「Oracle ODBCドライバ接続」 のポップアップ画面が表示されます。 表示される原因がわかりません。
どなたか教えてください。よろしくおねがいします。

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

A 回答 (1件)

長い間使っていますが、出た事ありませんのでわかりませんが、



http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF …

など、出てくる場合は、初期設定か、エラーの場合ですよね。

違いは、ODBCドライバーが違うのでは?

ユーザーの権利が違うのでは? (OSでのグループ設定)

OSのパッチや、ベンダー製のドライバーなら、バージョンが違うとか、

その辺調べてみましたか?

同じマシンでおくるなら、タイムアウトなど接続先の問題かと。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。
確認してみます。

お礼日時:2011/04/25 16:48

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

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

このQ&Aを見た人が検索しているワード

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

QOracleのUnion内でそれぞれのOrderBy結果を反映する方法

OracleのUnion内でそれぞれのOrderBy結果を反映する方法について



AテーブルからデータをBの昇順で一覧を取得する際、Bの特定のコードを先頭に持ってこようとしています。
例)金融機関テーブル(BANK)を金融機関コード(BANK_CK)の昇順で並び替えるが、全銀の'9999'を先頭に持って来たい。

(SELECT BANK_CD FROM BANK WHERE BANK_CD = '9999')
UNION
(SELECT BANK_CD FROM BANK WHERE BANK_CD <> '9999' ORDER BY BANK_CD);

としてしまうと、「ORA-00907: 右カッコがありません。」のエラーとなります。

SELECT 0 "PRE_KEY", BANK_CD FROM BANK WHERE BANK_CD = '9999'
UNION
SELECT 1 "PRE_KEY", BANK_CD FROM BANK WHERE BANK_CD <> '9999'
ORDER BY PRE_KEY, BANK_CD;

としてやると、値は並び変わりますが、いらない"PRE_KEY"が取れてしまいます。

BANK_CDだけ取得する方法はありますでしょうか?oracle11gです。

OracleのUnion内でそれぞれのOrderBy結果を反映する方法について



AテーブルからデータをBの昇順で一覧を取得する際、Bの特定のコードを先頭に持ってこようとしています。
例)金融機関テーブル(BANK)を金融機関コード(BANK_CK)の昇順で並び替えるが、全銀の'9999'を先頭に持って来たい。

(SELECT BANK_CD FROM BANK WHERE BANK_CD = '9999')
UNION
(SELECT BANK_CD FROM BANK WHERE BANK_CD <> '9999' ORDER BY BANK_CD);

としてしまうと、「ORA-00907: 右カッコがありません。」のエラーとなります。

SELE...続きを読む

Aベストアンサー

SELECT BANK_CD FROM BANK
ORDER BY
CASE WHEN BANK_CD = '9999' THEN 0 ELSE 1 END,
BANK_CD;

# 未検証です

QORACLEのDBへODBC経由でデータアクセスしています。

ORACLEのDBへODBC経由でデータアクセスしています。
実行環境はWindows XP,開発言語はCOBOLです。
コンパイルは問題ないのですが、実行しますと、
動的SQLの使い方が間違っていますというようなメッセージが
出力されて異常終了します。(ちなみにカーソルオープンのところで終了)
下記のような動的SQLのコーディングですが、どこが問題なのでしょうか?
宜しくお願いします。

01 SQL-CSR0-DB21.
03 FILLER PIC X(35) VALUE 'SELECT M.*,ROWIDTOCHAR(M.ROWID) '.
03 FILLER PIC X(35) VALUE ' FROM DB21 M '.
03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ?   '.
78 SQL-CSR0-LEN VALUE 105.

          (中略)  

INITIALIZE DYNSTMT.
MOVE SQL-CSR0-DB21 TO DYNSTMT-ARR.
MOVE SQL-CSR0-LEN TO DYNSTMT-LEN.
EXEC SQL PREPARE STMT1 FROM :DYNSTMT END-EXEC.
EXEC SQL DECLARE CSR0_TN_DB21
CURSOR FOR STMT1 END-EXEC.
EXEC SQL OPEN CSR0_TN_DB21 USING
:BCODE_HST
END-EXEC.

ORACLEのDBへODBC経由でデータアクセスしています。
実行環境はWindows XP,開発言語はCOBOLです。
コンパイルは問題ないのですが、実行しますと、
動的SQLの使い方が間違っていますというようなメッセージが
出力されて異常終了します。(ちなみにカーソルオープンのところで終了)
下記のような動的SQLのコーディングですが、どこが問題なのでしょうか?
宜しくお願いします。

01 SQL-CSR0-DB21.
03 FILLER PIC X(35) VALUE 'SELECT M.*,ROWIDTOCHAR(M.ROWID) '.
03 FILLER PIC X(35) VALUE ' FROM ...続きを読む

Aベストアンサー

>03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ?   '.

03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = :V1   '.
つまり、置き換える値の指定を?ではなく:V1にしてみてください。

QORACLE10g VIEW UNION

VIEW同士をUNIONすることは可能でしょうか?

というより、実行してみたのですが、データ型が一致していない列があり出来ませんでした。
View作成時にのデータ型を設定する方法などはあるのでしょうか?
識者の方がいればご教示いただきたいです。
よろしくお願いいたします。

Aベストアンサー

VIEW同士のUNIONは可能です

データ型が一致していない列があるとUNION出来ない、これは書かれている通りです
そのようなエラーが発生していたのであれば、そのような理由であると思われます

View作成時にデータ型を設定する方法ということですが、
これは普通に明示的に型をキャストすることで可能です

例(NUMBER→VARCHAR2)
Create Table TBL_NUM( NUM NUMBER );
Create View VIEW_NUM1 As Select NUM From TBL_NUM;
Create View VIEW_NUM2 As Select To_Char( NUM ) As "NUM" From TBL_NUM;

Desc TBL_NUM
Desc VIEW_NUM1
Desc VIEW_NUM2

VIEW_NUM2.NUM は VARCHAR2型辺りになっているはずです

QACCESSにODBC経由でORACLE接続

ACCESSのプロジェクト(帳票印刷など)ですが、データはORACLEに置いています。
ORACLEのクライアントをインストールしないで、ODBCを経由して、接続できますか?

Aベストアンサー

お使いになるODBCドライバによりますが、MS製ドライバもオラクル製ドライバも
ドライバの稼働条件がオラクルクライアント必須のため、そのような事は出来ません。
(ODBCドライバ内部で、オラクルクライアントを使うような仕組みです)

ただし、オラクルクライアントの全てを必要とするわけではありません。
(NETサービス等必要なモノだけインストールすれば良い)

Qoracle10g(オラクル)でインポートしたdmpデータの場所

社内のあるdmpデータをオラクル10gにインポートするようにと指示があり、ネット検索で得た情報を元にコマンドからdmpデータを何とかインポートできましたが、オラクル上でそのデータを確認する方法がわかりません。

●Oracle10gは3日前に下記サイトの「第1章 データベース構築の基礎編 」を参考にしてインストールしたものです。
http://otn.oracle.co.jp/easy/oracle10gr2/Windows.html

●今回インストールした際のユーザーは「sysman」です。

初歩的な質問で申し訳ございませんがどなたかどうぞ回答をお願いしますm(__)m。
因みに社内にOracle10gのマニュアル本はありません。

Aベストアンサー

>ところで私は以下のコマンドでウィザード形式ですすめているのですが;
>「imp ユーザー名/パスワード」
>「SHOW=Y をパラメータに追加」というのはどうすれば宜しいでしょうか。

対話形式での入力内容が判らないと、同じ意味のコマンドパラメータをお教えできませんが・・
imp userid=ユーザ名/パスワード file=HOGE.DMP full=y show=y
みたいな感じになりますかね。(フルリストアの場合)

QORACLEへ、ODBC経由でCHAR属性のフィールドへNULL文字(

ORACLEへ、ODBC経由でCHAR属性のフィールドへNULL文字(x'0')を
INSERTできたのですが、そのフィールドをUPDATEできません。
ODBCのエラーとなります。原因は何でしょうか?
宜しくお願いします。

Aベストアンサー

NULL文字はX'00'ではありませんから、お間違えの無いように。
その、エラーになるUPDATE文を提示可能ですか?
CHAR属性のフィールドをWHERE句に記述してませんか?

Qオラクル(oracle9i)の購入価格に関して

以前の質問で、No.850767にもありますが、オラクルを購入するには、ソフトウェアライセンスとCDPack、Standard Product Servicesの3つが基本的には必要だと、オラクル社のHPの「Oracle Price 2003」から把握できました。
それで、ライセンスの価格はHPやNo.850767の質問からわかったのですが、CDPackの1個の価格は、いくらなのでしょうか。大体の標準価格をOracleDatabese9iと10gの両方の価格をご存知の方、教えて頂けますでしょうか。
できれば、その価格が出ているURLも教えて頂けますでしょうか。
よろしくお願いします。

Aベストアンサー

数千円です(7,000~10,000円の間くらい)。
一応標準価格はあるのですが、代理店ごとに売価は違うはずです。
手元に資料がなくて詳細は答え切れませんが、ライセンスに比べると誤差のような価格です。

QOracle9i でODBC接続したい

Oracle初心者です。
ODBC接続したいのですがうまくいきません。

【環境】
win2003サーバ(XPに上にVirtualPCを使ってたてたサーバ):Oracle9iインストール
winXP:Oracle9iのインストールCDからODBCドライバのみインストール

【作業内容】
○Win2003サーバ
・Net Configuration Assistant で ローカル・ネット・サービス名を登録し
 正常に接続できることを確認。
・DSNを登録し接続テストを実施 → 成功。

○WinXP
・DSNを登録し接続テストを実施 → 失敗。
 
 接続できませんでした。
 SQLState=08004
 [Oracle][ODBC][Ora]ORA-12154:TNS:サービス名を解決できませんでした。
 
 という上記エラーメッセージが表示されます。
 何か根本的に間違っているのかもしれませんが解決策がわかりません。
 どうかお力を貸して下さい。
 よろしくお願いします。

Aベストアンサー

 ローカルネットサービス名はXP側に登録します。Win2003にはローカルネットサービス名は不要。Win2003側に必要なのはTNSリスナーの設定(多分Oracle Serverインストール時に自動で行われているはず)。

 そもそもODBCドライバ「のみ」ではよそのパソコンのOracleには接続できません。Oracle Net、Oracle OCIなどの「Oracle Client」が必要です。状況から、それはXP側に入っていると推測されるので問題はないですけど。

手順
1.XPでOracle Net ManagerあるいはNet Configuration Assistantでローカルネットサービス名を作る。ここで接続できるか確認(ここでつながらないのにODBCでつながる訳が無い)。
2.ODBCのDSNにそのネットサービス名をつけて接続確認。

Qオラクル10g,9iのクライアントを入れたましたが、oracleホームが一つしかありません。

オラクルの10gクライアントが入っているところへ、
9iのクライアントをインストールしました。

VBの
OracleInProcSever.XOraSession
オブジェクトを使い、
.DbOpenDataBaseメソッド利用すると、
10gの設定を見ているようで、9iの方の設定は参照されません。

ツールのhome selector を利用してみると、
「オラクルホームが一つしかない」という感じの
メッセージが表示されます。

レジストリでは、ホームの設定はoo4oの方だけ10g
に設定されているようです。

何か、VBの中で9iのクライアントを利用するように設定する方法はありませんでしょうか?

10gで9iのDBにバインドした設定ができればいいのですが、接続したときにバージョンが違うといわれてしまいます。


宜しくお願い致します。

Aベストアンサー

環境変数の設定が、10g、9iの順で設定されているかと思います。
HOME SELECTORでは10gを認識しないので、9iで接続したい場合は、
「PATH=c:\OraHome91\bin;d:\OraHome10g\bin;」
のような形で9iのパスを先に設定して下さい。

QACCESSとoracleのODBC接続

accessでoracleとODBC接続しています。access2003です。oracleは最新。
oracleのテーブルの項目数が255を超えています。
ACCESSの制限とか(?)で項目が350位あるので100項目くらいがリンクできません。VBAからselect文で(Select SYA_ID from IDOU)起動してもエラーになってしまいます。
何とか後ろのほうの項目を取得する方法は無いでしょうか?
ご指導のほど宜しくお願い致します。

Aベストアンサー

昔、Accessを使っていた頃に悩んだ制限ですが、今もあるんですね。

ORACLE側で255列までのVIEWにして、それをリンクする事でしのぎました。

V_IDOU1 (主キー + 200カラムくらい)
V_IDOU2 (主キー + 150カラムくらい)

みたいな感じで。

350列全てを一括での取得が必要なのであれば無理ですが、いずれにせよ、その制限がある以上、VIEWなどで分割して分けて持ってくるしかないのでは?


人気Q&Aランキング