Oracle のデータを使用する

AppSheet は、Oracle Cloud、Amazon RDS、またはその他の Oracle をサポートするクラウド ホスティング プロバイダでホストされている Oracle データベースからアプリを構築できます。アプリで Oracle のデータを使用するには、まずアカウントに Oracle データソースを追加する必要があります。

Oracle データソースを追加する

AppSheet アカウントに Oracle データソースを追加するには:

  1. [My Account] > [Sources] タブに移動します。
  2. [+ New Data Source] をクリックします。
  3. データソースの名前を入力し、[Cloud Database] または [On-premises Database] をクリックします。
    [Add database connection information] ダイアログが表示されます。
  4. データベースの接続情報を構成します。 
    • [Type]: [Oracle] を選択します。
    • [Server]: Oracle データベース サーバーのホスト名または IP アドレスを入力します。
    • [Database]: データベース名を入力します。
    • [Username]: データベース ユーザーのユーザー名を入力します。
    • [Password]: データベース ユーザーのパスワードを入力します。
  5. [Test] をクリックして接続の詳細をテストします。
  6. テストが成功したら、[Authorize Access] をクリックして、AppSheet アカウントにデータソースを保存します。

サーバー アドレスでポート番号を指定しない場合、AppSheet はデータベースがデフォルトのポート 1521 を使用すると想定します。別のポートを使用する場合は、サーバー アドレスに含める必要があります。以下は、ポート番号 8000 のサーバー アドレスの例です。

myoracledb.cfq3vjtjkq6z.us-west-2.rds.amazonaws.com:8000

AppSheet がデータベースにアクセスするには、Oracle インスタンスがクラウド(Oracle Cloud、Amazon RDS、またはその他のクラウド ホスティング プロバイダ)でホストされ、ネットワークと Oracle インスタンスの両方が AppSheet サーバーからデータベースへの受信接続を受け入れる必要があります。詳しくは、IP アドレスとファイアウォール情報を管理するをご覧ください。

Oracle データソースがアカウントに追加されると、データソース内のテーブルまたはビューを任意のアプリに追加できます。アプリエディタで [Add Table] を選択すると、特定のデータソースと、そのデータソースからのテーブルまたはビューを選択できます。

アプリに追加されると、AppSheet はすべてのデータソースを同様に扱います。実際、Oracle データソースからのデータと他のソースからのデータを同じアプリ内で組み合わせることは一般的であり、自然なことです。

Amazon RDS で Oracle を使用する

データベースが AWS で実行されている場合、[Network Security] オプションの [Publicly Accessible] が [Yes] に設定されていることを確認してください。次に、AppSheet の IP アドレスからのすべてのトラフィックを受け入れる受信ルールを作成します。詳しくは、IP アドレスとファイアウォール情報を管理するをご覧ください。

AWS の [Create Security Group] ダイアログ

AWS の [Edit inbound rules] ダイアログ

IDENTITY 列を使用する

Oracle Database 12c リリース 1(12.1)以降、Oracle テーブルはキー列として IDENTITY 列を使用できるようになりました。IDENTITY 列の値はデータベースによって自動的に挿入される自動インクリメントの数です。

IDENTITY 列を含む Oracle テーブルを AppSheet で使用すると、問題が発生する可能性があります。デフォルトでは、SQL を使用してアプリケーションに IDENTITY 列の値を定義することはできません。しかし、AppSheet では、アプリがオフラインの可能性があるときに新しい行が作成され、後で同期されてしまう場合があります。そのため、アプリは key/IDENTITY 値を割り当てることができなければなりません。

最適な解決策は、データベース スキーマで IDENTITY 列キーを完全に避けることです。代わりに、NVARCHAR2(8) の列(または一般的には 8 以上の長さの NVARCHAR)を使用します。このキーの AppSheet の列の定義で、UNIQUEID() の初期値を指定します。これで、アプリによって一意のキー値が割り当てられ、バックエンドのデータベースに挿入できるようになります。

データベースが IDENTITY 列を使用しなければならない場合には、大きい初期シードを使用して作成することをおすすめします。たとえば、START WITH 100000 を使用して、列の初期値を 100,000 に設定します。このキーの AppSheet の列の定義で、RANDBETWEEN(10000, 99999) の初期値を指定します。これで、アプリから作成されたレコードには 10000 から 99999 の範囲でランダムに配置される 5 桁の値が含まれるようになり、データベースに対して直接作成されたレコードの値はより高くなります。

データベースのスキーマを変更できず、IDENTITY 列がすでにデフォルトの初期シード(の一つ)で使用されている場合は、前述の方法と同じ手順を行うことをおすすめします。ただし、まず以下のように IDENTITY シードを手動で増やすことができます。

ALTER TABLE テーブル名 MODIFY (列名 GENERATED START WITH 100000)

これにより、必要な範囲に IDENTITY 列が「再シード」されるはずです。AppSheet アプリは RANDBETWEEN() 関数で指定された範囲の値を AppSheet 列定義の初期値に挿入します。

アプリで作成したファイルを保存する

データベース サーバーは、ファイル システムを持たないという点で、他のクラウド ストレージ プロバイダと異なります。これにより、ファイル(画像やドキュメントなど)を保存する際の AppSheet の動作が変更されます。アプリが写真をキャプチャする必要がある場合、それらは通常、クラウド ストレージのデータソースの隣のフォルダに保存されます。ただし、Oracle テーブルの場合、画像ファイルとドキュメント ファイルは、アプリ作成者のプライマリ AppSheet アカウントに関連付けられたメインのクラウド ファイル システム(通常は Google ドライブ/Dropbox/Office 365/Box)に保存されます。ファイルは、アカウントのデフォルトのフォルダパスのサブフォルダ(通常、/appsheet/data)に保存されます。[My Account] ページの [Settings] タブで、デフォルトのフォルダパスの表示や変更ができます。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
16609794254451724475
true
ヘルプセンターを検索
true
true
true
false
false