ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

uniPaaSとOracle Gatewayに関して

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 .7 | 投稿日時 2013-4-23 9:52
wshoichi  新米   投稿数: 14
初めまして。
uniPaaSは基礎コースを受講したのみの全くの初心者です。

uniPaaSとOralcle Gatewayを利用してシステムをメンテナンスしております。

テーブルの項目を追加しようとしていますが,以下の点がよくわかりません。

1. uniPaaSのデータリポジトリの項目とOracle上の項目の対応に関しては,設定が必要でしょうか。設定が必要であれば,ご教授ください。

2. uniPaaSの項目とOracleの項目の対応が取れない(Oracle側の項目が多い)場合,どのような挙動を示すのでしょうか。

以上,質問の内容・環境情報の提供が不十分とは思いますが,ご教授の程よろしくお願いいたします。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-23 10:19
Tanda  長老   投稿数: 2151
wshoichiさん、こんにちは。

既存のOracleテーブルにアクセスしたい場合は、Magic側で「定義取得」
の操作を行ってやると正確ですよ。定義にズレがあるとエラーが発生します。

新規のテーブルを生成する場合は、Oracle側では何もせず、すべてMagic
側で定義を行うのが原則です。Oracle側ではデータベースを定義するだけ
に留め、それ以外は何も触らないほうが理屈が分かり安いですよ。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-4-23 14:48
wshoichi  新米   投稿数: 14
Tanda様
早速の回答ありがとうございます。
勝手がわからずにご迷惑をおかけいたします。

定義取得とは,Oracleのテーブル構造と,Magicのデータリポジトリの整合をとる操作と考えてよろしいでしょうか。
新たにOracle上に新テーブルを作成し,新テーブルとデータリポジトリ間の整合を取る場合に「定義取得」を用いればよいという考えで間違っておりませんでしょうか。
運用中のシステムのため,データリポジトリとOracleDBとの間の同期機能はOFFにしております。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-23 16:17
Tanda  長老   投稿数: 2151
wshoichiさん、こんにちは。

「定義取得」とは、整合を取る操作ではなく、Oracle側の定義をまるごと
Magic側にコピーするという操作です。Magicより先にOracle定義が存在
しているようなケースの場合にこれを用います。

具体的には、Magicのプルダウンメニューから「オプション」→「定義取得」
です。

新規のテーブルを作成する場合は、すべての操作をMagic側で行うことが
できます。Oracle側では何もしなくても構いません。テーブルの作成すら
する必要がありません。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-4-23 16:38
wshoichi  新米   投稿数: 14
Tanda様
回答ありがとうございます。
右も左もわからない状態で,懇切丁寧な解説ありがとうございます。
当方で指示通りに操作してみたところ,テーブルのフィールドを取得できました。
ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-23 16:43
Tanda  長老   投稿数: 2151
とくにMagic以外の言語をやっておられる方は、Oracle側で先に
テーブルを定義しておかなければならないという習慣が身について
しまっておられる方が多いようで、よく勘違いされるようです。

Magicにおいては、Oracleのテーブル定義の手順さえも、Magic側で
行えるようになっているわけです。習慣とは怖いですね(笑)。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-23 16:54
HAYATO  一人前 居住地: 大阪市淀川区西中島5-9-2  投稿数: 90
こんにちは
丹田さんが仰るように、最初は定義取得でテーブル定義をMAGIC内に取り込むことからスタートした方が良いと思います。

ただ、それ以降もテーブルのメンテナンスとMAGIC側のテーブル定義おNメンテナンスは別々で作業した方が経験上トラブルは少ないと思います。

というのは最新のオラクルの機能に比べて、MAGIC側の機能はかなり少なく、IndexとDataを別々の領域に配置することも出来ません。 数値項目などはオーバーフローしない様、桁定義を外した方が良いのですが、それも出来ません。

後後のチューニングのことを考えると、、、

1.オラクルとMAGICの定義が開発版で同期しないように設定した方が良いと思っています。

2.については、オラクル側の項目の方が多い場合には、NULLもしくはデフォルト値がセットされます。NOT NULLでデフォルト値設定もしていない場合には、MAGICでエラーになります。

ただ同じ物理テーブルを別々の論理定義で使う場合などには敢えてそうしている時もありますので、そこはケースバイケースですね。


HAYATO@アインシュタイン設計社

投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2013-4-24 14:33
wshoichi  新米   投稿数: 14
丹田様,HAYATO様
丁寧な解説ありがとうございます。

まさにHAYATO様のおっしゃる通りの設定になっております。
項目の対応が取れないときのMagicの挙動がよくわかりました。

既存のテーブルに対して新らたに項目を追加する場合,
1. Oracle上で項目追加
2. 定義取得でMagicに反映
3. PG修正
といった流れを踏むと考えてよろしいでしょうか。

お二方ともMagicの世界では著名な方で,このような初歩的な質問で申し訳ございません。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-24 16:21
HAYATO  一人前 居住地: 大阪市淀川区西中島5-9-2  投稿数: 90
こんにちは
僕は経験上、このようにしています

1.オラクルの定義を取得するか、一旦MAGIC側でテーブルをCREATEしておいて、そのSQL文に手を入れて、CREATEし直します。

2.項目の変更があれば、
 MAGICのテーブル辞書
 と
 オラクル側
 の両方を変更します。

3.それからPG修正
 とオラクルのデータコンバートPGを作成

といった感じですね。

HAYATO@アインシュタイン設計社
 
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-4-24 16:42
Tanda  長老   投稿数: 2151
> 既存のテーブルに対して新らたに項目を追加する場合,
> 1. Oracle上で項目追加
> 2. 定義取得でMagicに反映
> 3. PG修正
> といった流れを踏むと考えてよろしいでしょうか。

今後もMagic以外からのアクセスもある場合はそれでいいと思います。
今後、Magicからしかアクセスがないような場合は、次のほうが適切です。

> 1. 定義取得でMagicに反映
> 2. Magic上で項目追加
> 3. PG修正
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-5-17 18:40
wshoichi  新米   投稿数: 14
Tanda様お返事が遅れて申し訳ありません。
的違いの質問でしたら申し訳ありません。
 項目追加の件ですが,Magicの仕組み上
どこかで,Magicのフィールド名⇒Oracleのフィールド名
への変換を行っている部分があるように思います。
MagicのことですからどこかにXML形式で記述された
ファイルがあると感じているのですが,定義取得の
代わりにそのファイルを編集して,項目追加の
代わりとすることは可能でしょうか。
邪道極まりないことかとは思うのですが,
定義取得でフィールドの順番がすっかり変わってしまいまして,
修正に難渋してしまいました。
MagicとOracleのテーブルを同期させれば,Tanda様の仰る通り
楽に追加は出来るのでしょうが。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-5-18 19:13
Tanda  長老   投稿数: 2151
wshoichiさん、こんにちは。

定義取得でカラムの順番が変わるっていうことはちょっと考えにくい
ですね。何らかの原因で取得に失敗しているように思えます。

DBへの登録名称は、カラム特性の「DBカラム名」で確認できますよ。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-5-22 15:10
wshoichi  新米   投稿数: 14
Tanda様こんにちは。 wshoichiです。
テスト用に全く同じテーブルをコピーして,テスト後リリースを考えておりました。
したがって,全く新しいテーブルの定義取得をしていたことになります。
スマートなやり方としては,
1. Tableに項目追加
2. 新たに項目を追加し,追加した項目名を設定
3. PG変更
の方がよいのでしょうか。
※もっと最初に聞いておくべきだったと後悔することしきりです。
 ありがとうございます。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約