Oracle で OUT引数のあるストアドプロシージャを呼び出すときの引数の指定の仕方

【環境】

  • Oracle 10g Release 2

【内容】

OUT 引数によって変数に値を返す場合は、呼び出し側の OUT 引数の前に「:(コロン)」を追加します。

■例1(out 引数が一番最後にある場合)

・ストアド側 (定義)

StoredFunction(arg1 in varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(argA, argB, :argC)

■例2(out 引数が一番最初にある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 in varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, argC)

■例3(out 引数が複数ある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, :argC)
]]>

Excel ファイルを複数のウインドウに表示させる方法

【環境】

  • Excel 2003
  • Excel 2007
  • Excel 2010

【内容】

Excel ファイルを普通にダブルクリックして開くときに、すでに Excel のウインドウがひとつ以上存在する場合はそちらを使って Excel ファイルが開かれます。そのため、複数の Excel ファイルを見ながら使いたい場合でも、同時に複数のウインドウを開いて閲覧することができません。(Excel 内では MDI のウインドウを使って分割表示などはできますが、デスクトップ上でのウインドウはひとつです)

複数のウインドウで表示させたい場合は、新たに Excel を新規に起動して新しく開いた Excel に Excel ファイルをドラッグ&ドロップすることによって複数ウインドウで閲覧することができます。

]]>

VBScript から ADO を使用して Oracle データベースに接続するサンプルプログラム

Option Explicit Dim objADO ' ADO オブジェクトを作成 Set objADO = CreateObject("ADODB.Connection") ' ADO を使い Oracle データベースを開きます ' $ConnectionString$ : 接続文字列 ' $UserName$ : ユーザー名 ' $Password$ : パスワード objADO.Open "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=$ConnectionString$; UID=$UserName$; PWD=$Password$;" ' ADO をクローズします objADO.Close Set objADO = Nothing msgbox "接続正常終了" ]]>

クライアントから Oracle データベースに接続するための事前設定 (クライアント側)

メモ書きです。

【環境】

  • Oracle 10g Release 2 データベース (別サーバーに存在)
  • クライアントに Oracle 10g Release 2 管理者ツール
  • Windows Vista (クライアント)
  • Windows Server 2003 (Oracle サーバー)

 

パターン1:Net Manager を使う方法

  1. スタートメニューから「Oracle - XXXXXX」「コンフィグレーションおよび移行ツール」「Net Manager」を選択して実行。(XXXXX はインストール時の名前)(ツールがない場合は必要なツールがインストールされていない)
  2. 「Oracle Netの構成」「ローカル」「サービス・ネーミング」を選択し、左にある「作成」ボタンをクリック
  3. ネット・サービス名を入力。(後で接続文字列に使用される)
  4. TCP/IPを選択
  5. データベースのあるホスト名(PC名)とポート番号(デフォルト1521)を入力
  6. サービス名を入力。(通常グローバル・データベース名)
  7. テストボタンをクリックし、ログイン変更ボタンをクリック。接続するためのユーザー名とパスワードを入力して接続できるかテストを行う。
  8. 完了をクリック。
  9. サービス・ネーミングのツリーに作成した接続名が追加されていることを確認し、Net Manager を閉じる。
  10. 保存確認ダイアログが表示されるので保存を行う。(ここまでしないと設定は反映されません)(ちなみにメニューに保存がありそうですが、クリックしてもメニューが展開されないので確認できず)(保存するとパス「%Oracle_Home%networkADMINtnsnames.ora」)ファイルが作成、または更新される)

 

パターン2:tnsnames.ora ファイルを直接書き換える方法

Net Manager を使うと「tnsnames.ora」ファイルが更新されますが、手動で書き換えることもできます。「tnsnames.ora」ファイルは以下のフォルダにあります。

  • %Oracle_Home%networkADMINtnsnames.ora

※特にフォルダを意識せずインストールした場合は「C:oracleproduct[Version][InstallName]networkADMINtnsnames.ora」です。

一つの接続設定ごとに以下のテキストが追加されています。($XXXXX$がパラメータなので適時置き換えてください。)

$ConnectionName$ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = $Protocol$)(HOST = $HostName$)(PORT = $PortNumber$))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = $ServiceName$)
    )
  )
パラメータ名 説明
$ConnectionName$ 接続名。他システムで接続文字列に使用します。
$Protocol$ 通信プロトコル。通常は「TCP」
$HostName$ Oracle データベースのあるホスト名(PC名)
$PortNumber$ ポート番号。デフォルトでは「1521」
$ServiceName$ サービス名。SIDまたはグローバル・データベース名。
]]>

Reporting Service のレポートサーバーに追加したレポートのバックアップ方法

メモです。

■環境

  • SQL Server 2008 R2

■内容

レポートビルダーなどで作成したレポートをレポートサーバー(https://blog.sorceryforce.net/ReportServer/)にアップロードした場合、レポート単独をファイルとしてバックアップする方法がありません。

アップロードされたレポートは SQL Server データベースに追加された「ReportServer」データベースに保管されているので、このデータを丸ごとバックアップすれば別記憶媒体にバックアップを取ることができます。

バックアップ手順

ReportServer データベースはオンラインバックアップが可能なので、SQL Server Management Studio 等からそのままバックアップタスクでバックアップできます。もちろん SQL を実行してバックアップも可能です。

復元手順

復元するには Reporting Services のサービスを一度止める必要があります。

  1. SQL Server 構成マネージャ等を使用して Reporting Services のサービスを停止する
  2. SQL Server Management Studio などを使用してバックアップした ReportServer を復元する。(上書きで)
  3. Reporting Services のサービスを開始する
  4. レポートの状態がバックアップ時点に復元されているか確認する

 

※メモレベルなのでもしかしたら間違っているかもしれませんので、確実に復元可能か運用前に確認してください。

]]>

SQL Server 2008 インストール時に「サービス´SQLBrowser´の開始要求に失敗しました。」と表示されてインストールに失敗する場合の対処法

■環境

  • Windows Server 2003 R2 Standard SP2
  • SQL Server 2008 Standard

■エラー内容

SQL Server のインストール設定を行い、インストールを開始しようとすると「サービス´SQLBrowser´の開始要求に失敗しました。」とエラーが表示されてインストールが中断される。

■原因

「MSXML 6 Service Pack 2 (KB973686)」がすでに Windows にインストールされている状態で SQL Server 2008 をインストールしようとすると、古い MSXML 6 をインストールしようとして失敗する。

■対処法

SQL Server 2008 をインストールする前にあらかじめ MSXML 6 SP2 をアンインストールしておき、SQL Server 2008 をインストールする。SQL Server インストール後、Windows Update 等で MSXML 6 SP2 をインストールする。

もし、SQL Server 2008 をインストールしようとして失敗している場合は、先に SQL Server の各コンポーネントをアンインストールしてから MSXML 6 SP2 をアンインストール。その後 SQL Server 2008 をインストールして対処する。

]]>

SSAS でメタデータ マネージャーのエラーが発生して処理や削除が行えなくなった場合の対処法

※ここに書いている手順は正式な回避方法ではないので自己責任でお願いします。

 

【環境】

  • SQL Server 2008 R2 SP1
  • Windows 7 64bit

 

【エラーの内容】

SSAS プロジェクトで処理や配置、また、Analysis Services サービスでデータベースを削除しようとしたときなど、Analysis Services サービスにかかわるほとんどの操作を行おうとしたときに以下のようなエラーメッセージが表示されて処理が中断される。

====================================================
メタデータ マネージャーでエラーが発生しました。
ID 'XXXXXX'、名前 'XXXXXX' のディメンションが
'XXXXXX' キューブによって参照されていますが、このディメンションは存在しません。
メタデータ マネージャーでエラーが発生しました。
XXXXXX cube を ファイル '\?C:Program FilesMicrosoft SQL Server
MSAS10_50.MSSQLSERVEROLAPDataXXXXXX.0.dbXXXXXXX.999.cub.xml'
から読み込み中に、エラーが発生しました。
(Microsoft.AnalysisServices)
=====================================================
※ XXXXXX は環境により異なる

【発生する原因】

不明。SSAS プロジェクトでエラーとなる不正なデータを配置すると発生する?

【回避手順】

  1. SQL Server Management Studio から Analysis Services に接続し、ツリートップにある Microsoft 分析サーバーの右クリックメニューから「停止」を選択して  Analysis Services を停止させる。
  2. エクスプローラーより「C:Program FilesMicrosoft SQL Server
    MSAS10_50.MSSQLSERVEROLAPData」フォルダを開き、エラーの発生するデータベースの以下のフォルダ・ファイルをリネームするか削除する
    ・XXXXXX.0.db フォルダ (0 は任意の数字)
    ・XXXXXX.99.db.xml ファイル (99 は任意の数字)
  3. SQL Server Management Studio から Analysis Services のツリーノードを右クリックし、「開始」をクリックする。
  4. 削除されている SSAS データベースをVisual Studio から再配置する(エラーは訂正しておくこと)。
]]>

ファイル名を指定して実行するダイアログを開くショートカット

Windows Vista や Windows 7 ではスタートメニューを開いた時点でプログラム名を入力して実行できる検索欄にカーソルが当たるのであまり使われませんが、Windows XP の場合「ファイル名を指定して実行」ダイアログを使う機会は多いと思います。

マウスでクリックして開くのが面倒であればキーボードの「Windowsキー」+「R」で開いてそのままプログラム名を入力することができます。

]]>

クライアントに表示される特定のディメンションの属性を非表示にする方法 [SQL Server Analysis Services]

キューブとディメンションを作成しクライアントに公開する際、不要なディメンションの属性が公開されてしまう場合があります。特にキーとなる属性は公開しなくてもいい場合がありますが、ディメンションのキーとなるため削除するとディメンションとして成り立たなくなってしまいます。

クライアントに公開したくない場合は以下の設定で非公開にできます。(見えないだけなのでディメンション上では存在することになります)

【手順】

  1. 作成したディメンションを開く
  2. 「ディメンション構造」のタブを選択し、属性の項目から非表示にした属性を選択
  3. 属性を右クリックしメニューから「プロパティ」を選択
  4. プロパティから「詳細設定」グループの「AttributeHierarchyVisible」を「False」に設定
]]>