2. コマンドを実行してください: SHOW CON_NAME
現在のセッションがどこで実行しているかを確認する必要があります。例えば、次の セッションはルートセッションとして動作しています。
CON_NAME
--- CDB$ROOT
3. データベースサーバ上にどのようなタイプのデータベースを持っているかを確認する には、以下のコマンドを実行する必要があります: SELECT PDB FROM
V$SERVICES;
出力例:
PDB
--- PDBORCL
CDB$ROOT CDB$ROOT CDB$ROOT CDB$ROOT
これは、PDBORCLであるPDBを持っていることを意味しています。
4. コマンドを実行してください: alter session set container=PDBORCL;
出力は次のようになるはずです: Session altered.
5. セッションが切り替わったことを確認するには、再び以下のコマンドを実行してくだ さい: SHOW CON_NAME
出力は次のようになるはずです: : CON_NAME
--- PDBORCL
6. これで、Oracleユーザを作成するためにスクリプトを実行することができます。
トラブルシューティング
特定のRDBMSで内部データベース用にMagic xpiを作成した時にエラーが発生した場合、SQLスクリ
プトの実行時に作成されたエラーログを参照してください。これは、Magic xpaが使用しているRDBMSと 関連した問題を特定する場合に役立ちます。
例 - MSSQLデータベース
<Magic xpiインストール>\db\MSSQL 内のMSSQL.logファイルをチェックして、MSSQLサーバに接続し てSQLステートメントを実行する際に記録されたエラーを確認してください。
Windows OSの PATH環境変数にパス(MSSQL\Binnフォルダ)のエントリが含まれていることを確認して
ください。MSSQLサーバ上でデータベースやユーザを作成することが可能な権利を持つユーザIDがあ ることを確認してください。
Magic xpi の内部データベースを手動で作成するには
Magic xpiの内部データベースを手動で作成するには、<Magic xpiインストールフォルダ>\DBフォルダ 内にあるjスクリプトを実行する必要があります。各データベース用に、それぞれのフォルダに必要なスク リプトがあります。
Rundb.batファイルを編集し、それを実行するか、データベースを設定するためのコマンドラインを実行す
る必要があります。
Rundb.batファイルを編集するには:
2. %2をユーザ名と置き換えるか、ユーザが無ければ、空の""ブラケットを使用してくだ さい。
3. %3をパスワードと置き換えるか、パスワードが無ければ、空の""ブラケットを使用し
てください。
4. コマンドがWindows認証用の場合は、%4を「1」と置き換えます。そうでなければ空 の""ブラケットを使用してください。
5. %5をデータベースのタイプと置き換えてください:MSSQL、ORACLE、DB2、
DB2400、またはMYSQL。
コマンドラインからファイルを実行するには:
1. コマンドプロンプトを開いてください。
2. DBフォルダへ移動してください。
3. コマンドラインで、rundbを入力し、スペースを入力後に以下のパラメータを追加し てください。
• SQL Serverの名前。
• ユーザ(ユーザが無ければ、空の""ブラケットを使用してください)の名前。
• パスワード(パスワードが無ければ、空の""ブラケットを使用してください)。
• コマンドがWindows認証用の場合は「1」を、そうでなければ、空の""ブラケット。
• データベースのタイプ:MSSQL、ORACLE、DB2、DB2400、またはMYSQL。 例えば: C:\Magic xpi 4.6\DB>RunDB MSSQLServer sa p@ssword "" MSSQL
4. Enterを押下して、パラメータを指定してバッチを実行してください。
ファイルを実行すると、プロセスは選択したDBタイプに基づいたログファイルを作成します。
SQL Server Express を使用するとき、パフォーマンスの問題を解決するには
Magic xpiが内部データベースとしてMS SQL Server Expressを使用してインストールされるとき、時々パ フォーマンスの問題が発生することがあります。たとえば、[データマッパ]画面を開くときに、このような問 題を経験するかもしれません。
これらの問題を防ぐには、MS SQL Serverの設定マネージャで、以下の変更を行ってください。
1. SQL Server構成マネージャを開いてください。.
2. サーバのプロトコルとしてTCP/IPと名前付きパイプを有効にしてください。
3. これらの変更をした後、サーバを再起動してください。SQL Server のサービスに移動 し、サーバを選択して、(以下の図で示すように)右クリックで再起動します。
4. 次に、クライアント側で同じプロトコルを有効にしてください。
SQL トランザクション用にデフォルトの BLOB サイズを変更するには
sql_blobsizeフラグを使用して、これを行うことができます。このフラグは、Magic.iniファイルの
[MAGIC_LOGICAL_NAMES]セクションにあります。デフォルト値は、1000000に設定されます。
これはBLOBのサイズを1MBと定義しています。BLOBのサイズを変更するためにこのフラグ の値を変更することができます。
データベース・トランザクション上でロールバックを開始するには
ロールバックを作成するために、フローデータユーティリティを使用することができます。論理変数を以下 の式で更新するフローデータ・ステップを作成してください。
Rollback ('FALSE'Log, 0)
この関数は、オープンされたすべてのデータベースのトランザクションをロールバックします。
マッピングのために MSSQL の DateTime タイプの送り元を Oracle の DateTime タイプに変換するには
MSSQLのDateTimeタイプは、Magic xpiの文字型タイプ(String Date)として読み出されます。
上記のマッピングを実行するために、Oracleのフォーマットと互換性を持つように、String Date を変換するためにOracleの to_date関数を使用する必要があります。
例:
• Insertの代わりにデータマッパの動的なDBオペレーションを使用してください。
• 送り元ノードで[StringDate]プロパティがYesに設定されていることを確認してください。
• ダイナミックなSQL文の“プレイスホルダ”として使用するために、2つの新しい変数(例、F.sourceと F.format)を追加してください。
• 例えば、以下のようなSQL文を使用してください。
"insert into table_name values(to_date('<!?F.source?!>','<!?F.format?!>'))"
• 送り元のMSSQL DateTimeをF.source 変数にマッピングしてください。
• 以下のフォーマットをF.format変数にマッピングしてください。
'yyyy/mm/dd hh:mi:ssam' (これは、OracleのDateタイプのデフォルトフォーマットです)
結果として、以下のようなSQL文が作成されます。
insert into table_name values(to_date('2012/01/15 11:05:04','yyyy/mm/dd hh:mi:ssam'))
Magic xpi に Oracle のシーケンスを読み込むには
以下のSQL文を数値変数にマッピングすることで、Oracleのシーケンスを取得することができます。
select pubs1.nextval from dual
(*pubs1 は、シーケンスの名前です。)
SQL文トは、手動で記述する必要があります。この場合、ウィザードを使用することができません。
Magic xpi でストアドプロシージャーを呼び出すには
Magic xpiでストアドプロシージャーを呼び出すためにデータマッパを使用することができます。
データの戻りが内ストアドプロシージャーを呼び出すために動的な送り先の SQL文を使用することができ、
また、関連データを送るためにプレースホールダーを使用することができます。
ストアドプロシージャーがデータを返すと、それが結果セットを返すことを確認してください。
パラメータをストアドプロシージャーに送る必要がある場合、ハードコードされた値または環境変数を使用 してください。
注 意:
環境変数を使用するのであらば[データマッパ]画面に入るために最初にハードコードされ た値を使用してください。マッピングが完了したら、これらの値を環境変数に置き換えること ができます。これをしないと、[データマッパ]画面を開くことができません。
以下のスクリーンショットは、パラメータなしでのストアドプロシージャーの呼び出しを表示しています。
以下のスクリーンショットは、パラメータ付きでストアドプロシージャーを呼び出す場合を表示しています。
日付と時刻
日付と時刻
以下のトピックは、Magic xpiの中で日付と時刻の扱いについて説明しています。
Magic xpi でDateTime の日付タイプを使用するには Unix 時刻を計算するには
現在の日付を取得するには
現在の時刻を取得するには
日付値を加算するには
時効値を加算するには
指定された日付に対応する月の最初の日付を取得するには
指定された日付に対応する年の最初の日付を取得するには
指定された日付に対応する月の最後の日付を取得するには
指定された日付に対応する年の最後の日付を取得するには
指定された日付に対応する曜日名を取得するには
指定された日付に対応する月名を取得するには
指定された日付の年/月/日の各部分を取得するには 指定された日付の週単位の日数を取得するには
日付値を文字列に変換するには
文字列で格納された日付を日付値に変換するには XML DateTimeフォーマットを計算するには
ユリウス歴の日付を計算するには
Magic xpi で DateTime の日付タイプを使用するには
Magic xpiは、DateTimeデータタイプをネイティブにサポートしていません。DateTimeデータタイプを使 用する場合は、文字列として処理する必要があります。Magic xpiデータマッパを使用して、データベース 間でDateTime値に対するSELECT、INSERT、またはUPDATE wを行いたい場合はこれを行う必要が あります。
Magic xpiは、ノードレベルで簡単に設定することができます。これによってMagic xpiサーバに、文字列
としてDateTime値を処理するように指定します。この動作をコントロールするプロパティは、String Dateと
呼ばれて、日付データタイプで利用できます。
Unix 時間を計算するには
Unix時間は、協定世界時(UTC)1970年1月1日00:00:00以降からの経過した秒数です。何秒が一定 のイベントが発生してからの経過時間を追跡するためにこの数値を使用することができます。
プロジェクトでUnix 時間を使用したい場合、UTCが以下の式を使用するタイムゾーンであるという前提で、
Unix時間の導関数を計算することができます。
(Date DVal ('01/01/1970','MM/DD/YYYY')-1)*86400+(Time ()-TVal('00:00:00','HH:MM:SS'))