スポンサーサイト

--年--月--日 【 スポンサー広告


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DBLinkの記事アクセスが多いですね

2015年01月06日 【 001.DBLink


最近、OracleからSQLServerへ接続する記事を
訪れて下さっている方が多いですね。
Windows Server 2003のリプレイス期限が絡んでたりしますかね?

実はExcelのDBLinkも記事にしたいのですが、
確認の環境が用意できないので、とりあえずメモだけ。
予想ばかりですいません。

ちなみに
WindowsServer2003(32bit)、Excel2000、
Oracle Database 10gR2(32bit)の環境では
動作を確認しています。


SQLServerへの接続の設定と結構似ています。
大きな違いはODBCはExcel Driverを使用するくらいかと。

Excel側でテーブルを定義します。
「excel 表 名前」などでググッてみてください。
いくつかサイトが引っかかります。
SELECT * FROM [EXCELで定義した表名]@DBLINNAME
みたいな感じでデータが拾えます。


Windwos Server 2008系はノーマル環境だと旧式の「xls」だけが
ドライバとして存在しています
Office2010以降のドライバを入れれば「xlsx」にも対応できるのではないかと
予想しています。

Windwos Server 2012系は「xls」と「xlsx」、
新旧どちらも使えるドライバが入っていたかと思います。


確認できていないことがいくつかあります。

1.32bit、64bitの絡み

 ODBCは32bit(※)と64bitがありますが、
 (少なくとも2008系は)64bitの方はExcelドライバがリストアップされてこないはずなので
 これに絡んで32bitのOracle Clientを別途入れる必要があるのか、
 そのあたりを確認していません。

 ※C:\Windows\SysWOW64\odbcad32.exe

2.Office2010(Excel2010)のドライバ

 あるのか確認していません。



スポンサーサイト

OracleからSQLServerへのDBLink接続(12c Non-CDB版)

2015年01月06日 【 001.DBLink


●Oracle12cのデータベースリンクを使用してODBC経由でSQLServerにつなぐ(連携)方法。

※こちらはCDBではなくNon-CDBとなります。
 11gと同じ方法でできました。

OS: Windows Server 2008 R2
DB: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0

1.ODBCの設定

 例として以下のようにする。

ドライバSQL Server
データソース名ODBC_DS
サーバーSQLSVR2008
認証方式パスワード認証
ログインIDuser1
パスワードpass

 ※ドライバ以外は各々の設定で


2.OracleDatabaseのインストール

 ORACLE_HOME: D:\Oracle\product\12.1.0\dbhome_1


3.SYS.HS_FDS_CLASSの存在確認

 SELECT * FROM SYS.HS_FDS_CLASS;


4.initmssql.oraの作成

 とりあえず「%ORACLE_HOME%\hs\admin\initdg4odbc.ora」を
 同じフォルダにコピーして「initmssqlodbc.ora」作成する。

 HS_FDS_CONNECT_INFO =
 HS_FDS_TRACE_LEVEL =

  ↓↓↓↓

 HS_FDS_CONNECT_INFO = ODBC_DS
 HS_FDS_TRACE_LEVEL = OFF


 ※説明を分かりやすくするためにmssqlodbcに変更しただけなので
  initdg4odbc.oraを使用してもOK
 ※HS_FDS_TRACE_LEVELは各々の設定で


5.listener.oraの設定

 「%ORACLE_HOME%\network\ADMIN\listener.ora」に追加する。

  SID_LIST_LISTENER =
      (SID_LIST =
          (SID_DESC =
              (SID_NAME = mssqlodbc)
              (ORACLE_HOME = D:\Oracle\product\12.1.0\dbhome_1)
              (PROGRAM = dg4odbc)
          )
      )

 ※dg4odbc は固定値


6.tnsnames.oraの設定

 「%ORACLE_HOME%\network\ADMIN\tnsnames.ora」に追加する。

  SQL_TNS =
 
    (DESCRIPTION =
          (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = orahost12c)(PORT = 1521))
          )
          (CONNECT_DATA =
              (SERVICE_NAME = mssqlodbc)
          )
          (HS = OK)
      )

 ※「orahost12c」はOracleDBのホスト名
 ※「SQL_TNS」は任意


7.LISTENERの再起動

 lsnrctl stop ⇒ lsnrctl start
 サービス"mssqlodbc"には、1件のインスタンスがあります。
  インスタンス"mssqlodbc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...


8.DBLINKの作成

 CREATE DATABASE LINK SQL_LINK CONNECT TO user1 IDENTIFIED BY pass USING 'SQL_TNS';


9.SQL実行

 SELECT * FROM SQL_TABLE@SQL_LINK;

 ※この時、タスクマネージャーにdg4odbc.exeというプロセスが立ち上がる


10g版はこちらから。

11g版はこちらから。

半額購入権 獲得(^o^)/

2014年01月28日 【 001.Oracle


先日システム・テクノロジー・アイでやってた
何でも半額キャンペーンみたいなのに当たってしまった(^_^)v
こりゃあもうOracle講習会の半額権利一択でしょ!

RACとかはもう少し高いけど基本的に5日間講習は374,250円する。
半額はかなり安くなるね。

Gold取得には講習受講が必須で、最低ラインが3日間講習。

会社は出してくれないのでまたもや自腹だからきついな~。
講習も試験も受けてるから貯金全然たまらんわ。(T_T)


4箇所くらいで受講したことあるけど
システム・テクノロジー・アイが最高だわ。
ステマじゃないよ?(笑)

あの会社の気配りはハンパないよ。
あと「いい人」が多くて、話すのがすごく楽しいの。
もちろん実力があるから聞いたことに確実に答えを返してくれる。
だから初日から満足できるんだよね。

おまけに東京会場は築地寄りの銀座だから
ランチが楽しいんだよ(≧ω≦)b
昔は恵比寿だったし、きっとランチの美味しいところを基準に
会場を決めているんだろう。(←嘘)

Oracle講習は基本、金額は同じ。
だったらいい会場を選びましょ!( ̄ー+ ̄)ニヤリ

Oracle Database 12c 最初の感想

2014年01月06日 【 001.Database 12c


Oracle 12cのセミナーにはいくつか行ったものの
DB環境を構築する時間が取れなかったが、
ようやくインストールをすることができた。

※OS:Oracle Enterprise Linux 6.5

OSの環境変数やパラメータファイル等は
公式ドキュメント等の情報を見たので特に苦労なくDBを作成できた。
(Linuxに関して色々忘れてて、実はちょっと苦労したけど・・・(笑))

その後、rlwrapもインストールして
rlwrap sqlplus system/password
で無事接続完了。

さて、ユーザーも作ってみるかということで
create user scott2 identified by tiger;
を流してみると、エラーが発生。

SQL> create user scott2 identified by tiger;
create user scott2 identified by tiger;
        *
行1でエラーが発生しました。
ORA-65096: 共通ユーザーまたはロール名が無効です


共通ユーザーって何だっけ・・・?(´・ω・`)

そういえばインストール時に12cの新機能である
マルチテナント・コンテナ・データベース(CDB)プラガブル・データベース(PDB)
設定してみたんだけど、今、どこに接続してるんだ??
※CDB:cdb12c、PDB:pdb12c1 としてみた

以下のドキュメントで調べてみた。

SQL*Plus®ユーザーズ・ガイドおよびリファレンス リリース12.1
B71396-01(SHOWコマンド)


CON_NAME
統合データベースに接続している場合は接続先のコンテナの名前が表示されます。
非統合データベースの場合、Non Consolidatedが戻されます。


SHOW CON_NAME; を実行すると、以下の情報を取得できた。


SQL> SHOW CON_NAME;

CON_NAME
-------------
CDB$ROOT



なるほど、「system/password」で接続するとCDBに接続するのか。
共通の位置づけにあるCDBで「create user」を流したから「共通ユーザー」とか出てきたわけね。
その辺の違いは別の機会に確認するとして、とりあえずPDBの方に接続してみるか・・・

どうやって接続すんの・・・?(´iωi`)

SQL*Plusのドキュメントを見ても専用のオプションが
追加された様子がないような気がする・・・
う~ん・・・どうしよう。
いろいろやってみた結果、以下の2つでとりあえずできた。

<手段1>
ALTER SESSION で切替をする。

Oracle® Database管理者ガイド 12c リリース1 (12.1)
B71301-01(ALTER SESSION文を使用したコンテナへの切替え)


●CDBへ接続
ALTER SESSION SET CONTAINER = CDB$ROOT;

●PDBへ接続
ALTER SESSION SET CONTAINER = pdb12c1;

これで切替できるみたいだけど、微妙に面倒だな・・・


<手段2>
とりあえず「LSNRCTL STATUS」でリスナーの状態を見ると
グローバルデータベース名と同名のサービス(今回はglbdbnm)と
PDBと同名のサービス(今回はpdb12c1)が立ち上がっている。
これを考慮して接続する。
※oel65はホスト名。localhostやIPアドレスも可


●CDBへ接続
sqlplus system/password@oel65/glbdbnm

●PDBへ接続
sqlplus system/password@oel65/pdb12c1


「cdb12c」は使わないんだねぇ。


tnsnames.oraも考え方は同じでSERVICE_NAMEを
上で言うところの「glbdbnm」もしくは「pdb12c1」を
設定すればいいってわけね。


---

概念を理解するのに時間かかりそうだなぁ・・・(ノ△・。)

OracleからSQLServerへのDBLink接続(11g版)

2013年02月11日 【 001.DBLink


●Oracle11gのデータベースリンクを使用してODBC経由でSQLServerにつなぐ(連携)方法。

OS: Windows XP Professional SP3
DB: Oracle Database 11g Standard Edition Release 11.2.0.1.0

1.ODBCの設定

 例として以下のようにする。

ドライバSQL Server
データソース名ODBC_DS
サーバーSQLSVR2008
認証方式パスワード認証
ログインIDuser1
パスワードpass

 ※ドライバ以外は各々の設定で


2.OracleDatabaseのインストール

 ORACLE_HOME: D:\Oracle\product\11.2.0\dbhome_1


3.SYS.HS_FDS_CLASSの存在確認

 SELECT * FROM SYS.HS_FDS_CLASS;


4.initmssql.oraの作成

 とりあえず「%ORACLE_HOME%\hs\admin\initdg4odbc.ora」を
 同じフォルダにコピーして「initmssqlodbc.ora」作成する。

 HS_FDS_CONNECT_INFO =
 HS_FDS_TRACE_LEVEL =

  ↓↓↓↓

 HS_FDS_CONNECT_INFO = ODBC_DS
 HS_FDS_TRACE_LEVEL = OFF


 ※説明を分かりやすくするためにmssqlodbcに変更しただけなので
  initdg4odbc.oraを使用してもOK
 ※HS_FDS_TRACE_LEVELは各々の設定で


5.listener.oraの設定

 「%ORACLE_HOME%\network\ADMIN\listener.ora」に追加する。

  SID_LIST_LISTENER =
 
    (SID_LIST =
          (SID_DESC =
              (SID_NAME = mssqlodbc)
              (ORACLE_HOME = D:\Oracle\product\11.2.0\dbhome_1)
              (PROGRAM = dg4odbc)
          )
      )

 ※10gではSID_LIST_LISTENERの記述があるが、11gには記述が無い
 ※dg4odbc は固定値


6.tnsnames.oraの設定

 「%ORACLE_HOME%\network\ADMIN\tnsnames.ora」に追加する。

  SQL_TNS =
      (DESCRIPTION =
          (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = orahost11g)(PORT = 1521))
          )
          (CONNECT_DATA =
              (SERVICE_NAME = mssqlodbc)
          )
          (HS = OK)
      )

 ※「orahost11g」はOracleDBのホスト名
 ※「SQL_TNS」は任意


7.LISTENERの再起動

 lsnrctl stop ⇒ lsnrctl start
 サービス"mssqlodbc"には、1件のインスタンスがあります。
  インスタンス"mssqlodbc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...


8.DBLINKの作成

 CREATE DATABASE LINK SQL_LINK CONNECT TO user1 IDENTIFIED BY pass USING 'SQL_TNS';


9.SQL実行

 SELECT * FROM SQL_TABLE@SQL_LINK;

 ※この時、タスクマネージャーにdg4odbc.exeというプロセスが立ち上がる


10g版はこちらから。

12c版はこちらから。
プロフィール

らんばーど

Author:らんばーど





-*-*-*-*-*-*-*-*-*-*-*-*-

広く浅く、内容薄く。
自分のペースで楽しく学ぶ。

あなたに役立つ情報が
奇跡的にここで見つかれば
嬉しいですね。
※拍手歓迎(笑)

-*-*-*-*-*-*-*-*-*-*-*-*-

【64bit環境】
Windows7 Professional
Core i7-3930K C2-Step
16GB RAM

【32bit環境】
WindowsXP Professional
Core2 Duo E8600 3.33GHz
4GB RAM

-*-*-*-*-*-*-*-*-*-*-*-*-

【音楽の目指すポジション】

自分の気持ちを
素直に表現できる、
そんな音楽が
作れるようになりたい 

-*-*-*-*-*-*-*-*-*-*-*-*-

記述内容の正確性、
および動作保障等に関して
一切責任をもちません。

カテゴリ
ブログ内検索
最新記事
リンク
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。